Branch: refs/heads/safari-7614.3.7.0-branch Home: https://github.com/WebKit/WebKit Commit: 27039b0e60e9a4517d0534e43e7c6788a887be9d https://github.com/WebKit/WebKit/commit/27039b0e60e9a4517d0534e43e7c6788a887be9d Author: Alan Coon <alanc...@apple.com> Date: 2022-11-10 (Thu, 10 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.0.1 Canonical link: https://commits.webkit.org/252432.805@safari-7614.3.7.0-branch Commit: 3b6eeb879c5adfa170549207af53f4f3467a1155 https://github.com/WebKit/WebKit/commit/3b6eeb879c5adfa170549207af53f4f3467a1155 Author: Wenson Hsieh <wenson_hs...@apple.com> Date: 2022-11-10 (Thu, 10 Nov 2022) Changed paths: A LayoutTests/fast/viewport/ios/adjust-fixed-width-and-initial-scale-to-avoid-excessive-zooming-expected.txt A LayoutTests/fast/viewport/ios/adjust-fixed-width-and-initial-scale-to-avoid-excessive-zooming.html M Source/WebCore/page/ViewportConfiguration.cpp M Source/WebCore/page/ViewportConfiguration.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp Log Message: ----------- Cherry-pick 36ed6c6840cc. rdar://problem/99448942 [iPadOS] Wikipedia pages are excessively zoomed in when viewed in an external display https://bugs.webkit.org/show_bug.cgi?id=247636 rdar://99448942 Reviewed by Tim Horton. When loading Wikipedia articles in an external display connected to iPad, the page dynamically sets the meta viewport content string to `width=1000, initial-scale=3.6` (where the initial scale depends on how wide the display is — in this example, 3600px wide). This leads to the contents of the article being excessively zoomed, and difficult to read. To mitigate this, we add a viewport sizing heuristic to cap the maximum initial scale of the page to a much more reasonable value (somewhat arbitrarily chosen to be 1.2) in the case where both the initial scale and viewport width are explicitly set. To keep this fixed-width viewport consistent with the new initial scale, we also adjust the explicitly-specified viewport width as needed. In the above example, this would turn the `width=1000, initial-scale=3.6` viewport specified by Wikipedia into a `width=3000, initial-scale=1.2` viewport on an external display. Test: fast/viewport/ios/adjust-fixed-width-and-initial-scale-to-avoid-excessive-zooming.html * Source/WebCore/page/ViewportConfiguration.cpp: (WebCore::viewportArgumentValueIsValid): (WebCore::adjustViewportArgumentsToAvoidExcessiveZooming): (WebCore::ViewportConfiguration::setViewportArguments): Adjust viewport arguments after setting them, if needed. (WebCore::ViewportConfiguration::description const): * Source/WebCore/page/ViewportConfiguration.h: Add the new policy bit. (WebCore::ViewportConfiguration::setCanIgnoreViewportArgumentsToAvoidExcessiveZoom): * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): (WebKit::WebPage::updateWebsitePolicies): Set the above policy bit in the case where we're loading desktop-class content. Canonical link: https://commits.webkit.org/256476@main Canonical link: https://commits.webkit.org/252432.806@safari-7614.3.7.0-branch Commit: e6f0a257fbc48bc97a4b9f223b1e7ccade4cd6e1 https://github.com/WebKit/WebKit/commit/e6f0a257fbc48bc97a4b9f223b1e7ccade4cd6e1 Author: Alan Bujtas <za...@apple.com> Date: 2022-11-10 (Thu, 10 Nov 2022) Changed paths: M Source/WebCore/page/FrameView.cpp Log Message: ----------- Cherry-pick abb17906be3a. rdar://problem/101652475 FrameView::m_pendingTextFragmentIndicatorRange may get reset unexpectedly when the render tree is dirty https://bugs.webkit.org/show_bug.cgi?id=247687 <rdar://101652475> Reviewed by Wenson Hsieh. This is a speculative fix to prevent a crash in TextIterator (via scrollToTextFragmentRange). The idea here is to prevent the scrolling code from re-entering layout (through plainText() -> TextIterator -> updateLayoutIgnorePendingStylesheets()) when the render tree becomes dirty earlier at performPostLayoutTasks. When we call plainText() the second time inside scrollToTextFragmentRange, m_pendingTextFragmentIndicatorRange may have already been wiped out as the result of re-entering layout through the first plainText() call. * Source/WebCore/page/FrameView.cpp: (WebCore::FrameView::scrollToTextFragmentRange): 1. Let's not scroll when the tree is dirty (the subsequent layout will call us again anyway) 2. cache m_pendingTextFragmentIndicatorRange to preserve the range even through re-entrancy. Canonical link: https://commits.webkit.org/256506@main Canonical link: https://commits.webkit.org/252432.807@safari-7614.3.7.0-branch Commit: 976615de982cfcc3227660ecf80eadfa7dc88a95 https://github.com/WebKit/WebKit/commit/976615de982cfcc3227660ecf80eadfa7dc88a95 Author: Jer Noble <jer.no...@apple.com> Date: 2022-11-10 (Thu, 10 Nov 2022) Changed paths: M LayoutTests/media/video-object-fit.html M LayoutTests/platform/mac/TestExpectations M Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in M Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm M Source/WebKit/GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp M Source/WebKit/GPUProcess/media/playstation/RemoteMediaPlayerProxyPlayStation.cpp M Source/WebKit/GPUProcess/media/win/RemoteMediaPlayerProxyWin.cpp M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in M Source/WebKit/WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm Log Message: ----------- Cherry-pick 5c28999a8939. rdar://problem/101298592 REGRESSION?(255635@main): [ iOS ] media/video-object-fit.html is a constant failure https://bugs.webkit.org/show_bug.cgi?id=246698 rdar://101298592 Reviewed by Eric Carlson. Refactor the test to rely on rVFC(), rather than `canplaythrough`. * LayoutTests/media/video-object-fit.html: * LayoutTests/platform/ios-wk2/TestExpectations: * LayoutTests/platform/mac/TestExpectations: Because isReadyForVideoSetup() relies on m_readyState, make sure to check it _after_ the ready state is changed, not before. * Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::updateStates): When PrepareForPlayback() is sent, the RemoteMediaPlayerProxy will create a remote layer hosting context, and in the callback, MediaPlayerPrivateRemote will create a layer. However this happens _way_ before the remote player is actually ready to display content, and _way_ before the remote player has a valid naturalSize. So the initial layout will place the remotely hosted layer assuming a default replaced size of 300x150, which leads to a weird layout change when the true naturalSize change occurs. Only create a layer hosting context when the remote player says that it has a layer to display. This guarantees that the initial layer layout of the video content happens _after_ the naturalSize is known and sizes the layer correctly. * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::prepareForPlayback): * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h: * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in: * Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeIfPossible): (WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged): (WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeFenced): (WebKit::RemoteMediaPlayerProxy::prepareForPlayback): Deleted. * Source/WebKit/GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp: (WebKit::RemoteMediaPlayerProxy::prepareForPlayback): Deleted. * Source/WebKit/GPUProcess/media/playstation/RemoteMediaPlayerProxyPlayStation.cpp: (WebKit::RemoteMediaPlayerProxy::prepareForPlayback): Deleted. * Source/WebKit/GPUProcess/media/win/RemoteMediaPlayerProxyWin.cpp: (WebKit::RemoteMediaPlayerProxy::prepareForPlayback): Deleted. * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::prepareForPlayback): * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h: * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in: * Source/WebKit/WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::layerHostingContextIdChanged): Canonical link: https://commits.webkit.org/256320@main Canonical link: https://commits.webkit.org/252432.808@safari-7614.3.7.0-branch Commit: 5ff94fdb10b4aaae788162f7be68c8b552e4a2e1 https://github.com/WebKit/WebKit/commit/5ff94fdb10b4aaae788162f7be68c8b552e4a2e1 Author: J Pascoe <j_pas...@apple.com> Date: 2022-11-10 (Thu, 10 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm Log Message: ----------- Cherry-pick 5d4cfd0b4223. rdar://problem/101836775 Set SOAuthorization's delegate after creation https://bugs.webkit.org/show_bug.cgi?id=247585 rdar://101836775 Reviewed by Brent Fulgham. The previous process for changing the SOAuthorizationSession and setting the SOAuthorizationDelegate can lead to a race where the ssesion is set multiple times in a very short period. The session swap logic in [WKSOAuthorizationDelegate setSession] can set the delegate to null which can end up cancelling the new request. This patch restores setting SOAuthorization when initializing the session. Covered by existing SOAuthorization tests. * Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h: * Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm: (WebKit::NavigationSOAuthorizationSession::NavigationSOAuthorizationSession): * Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h: * Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm: (WebKit::PopUpSOAuthorizationSession::create): (WebKit::PopUpSOAuthorizationSession::PopUpSOAuthorizationSession): * Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h: * Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm: (WebKit::RedirectSOAuthorizationSession::create): (WebKit::RedirectSOAuthorizationSession::RedirectSOAuthorizationSession): * Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm: (WebKit::SOAuthorizationCoordinator::tryAuthorize): * Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h: * Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: (WebKit::SOAuthorizationSession::SOAuthorizationSession): (WebKit::SOAuthorizationSession::setSOAuthorizationDelegate): Deleted. * Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h: * Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: (WebKit::SubFrameSOAuthorizationSession::create): (WebKit::SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession): * Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm: (-[WKSOAuthorizationDelegate setSession:]): Canonical link: https://commits.webkit.org/256460@main Canonical link: https://commits.webkit.org/252432.809@safari-7614.3.7.0-branch Commit: 7c0853850bcbb4b67557f1bbba003e4ccb312acc https://github.com/WebKit/WebKit/commit/7c0853850bcbb4b67557f1bbba003e4ccb312acc Author: Alan Coon <alanc...@apple.com> Date: 2022-11-10 (Thu, 10 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.0.2 Canonical link: https://commits.webkit.org/252432.810@safari-7614.3.7.0-branch Commit: 931c59872bb673832798f03b4de53d4eb4e60839 https://github.com/WebKit/WebKit/commit/931c59872bb673832798f03b4de53d4eb4e60839 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-10 (Thu, 10 Nov 2022) Changed paths: M Source/WebCore/Configurations/WebCore.xcconfig M Source/WebCore/platform/ios/PasteboardIOS.mm M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm Log Message: ----------- Revert fe7553ab3123. rdar://problem/96853551 This reverts commit a8f88680baeab54cfb5d41c803ff80d8c52fd2da. Canonical link: https://commits.webkit.org/252432.811@safari-7614.3.7.0-branch Commit: aeedd48890be37bfdb4bc738e1576ef0a4cc6544 https://github.com/WebKit/WebKit/commit/aeedd48890be37bfdb4bc738e1576ef0a4cc6544 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-11 (Fri, 11 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.0.3 Canonical link: https://commits.webkit.org/252432.812@safari-7614.3.7.0-branch Commit: 2ae72be5985b02d513d263c95147b007c0c32739 https://github.com/WebKit/WebKit/commit/2ae72be5985b02d513d263c95147b007c0c32739 Author: Youenn Fablet <youe...@gmail.com> Date: 2022-11-11 (Fri, 11 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.813@safari-7614.3.7.0-branch Commit: 4644bc4a8748ae782be5250bf1c9e2731e0c2a76 https://github.com/WebKit/WebKit/commit/4644bc4a8748ae782be5250bf1c9e2731e0c2a76 Author: Philippe Normand <ph...@igalia.com> Date: 2022-11-11 (Fri, 11 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.814@safari-7614.3.7.0-branch Commit: e58dd5b0eda57d13b0d213bfa51a4b3f5c592505 https://github.com/WebKit/WebKit/commit/e58dd5b0eda57d13b0d213bfa51a4b3f5c592505 Author: Youenn Fablet <youe...@gmail.com> Date: 2022-11-11 (Fri, 11 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.815@safari-7614.3.7.0-branch Commit: 2f1bd3848ea3fb625ebbc59311c442a155e43e8b https://github.com/WebKit/WebKit/commit/2f1bd3848ea3fb625ebbc59311c442a155e43e8b Author: Eric Carlson <eric.carl...@apple.com> Date: 2022-11-11 (Fri, 11 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.816@safari-7614.3.7.0-branch Commit: e2241813d03af4d45ccc6cff9ed1382ed493cd98 https://github.com/WebKit/WebKit/commit/e2241813d03af4d45ccc6cff9ed1382ed493cd98 Author: Eric Carlson <eric.carl...@apple.com> Date: 2022-11-11 (Fri, 11 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.817@safari-7614.3.7.0-branch Commit: 082f404b4d5a151efd34373ce3c4a354a82e7118 https://github.com/WebKit/WebKit/commit/082f404b4d5a151efd34373ce3c4a354a82e7118 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp Log Message: ----------- 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 Commit: 3c743899be882af2821995c6b70992fa557faaf0 https://github.com/WebKit/WebKit/commit/3c743899be882af2821995c6b70992fa557faaf0 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp M Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.h Log Message: ----------- Revert 0297f1253a4f. rdar://problem/101927216 Canonical link: https://commits.webkit.org/252432.819@safari-7614.3.7.0-branch Commit: 0cb26b0ae44171c42f5dbc2b63ecfc3a167ae4ca https://github.com/WebKit/WebKit/commit/0cb26b0ae44171c42f5dbc2b63ecfc3a167ae4ca 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.820@safari-7614.3.7.0-branch Commit: 786de9d670c2b981c975234a717c8846c30c581d https://github.com/WebKit/WebKit/commit/786de9d670c2b981c975234a717c8846c30c581d 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.821@safari-7614.3.7.0-branch Commit: 569af9f56e956d25d7c60ea58bb74cc2377aef84 https://github.com/WebKit/WebKit/commit/569af9f56e956d25d7c60ea58bb74cc2377aef84 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.822@safari-7614.3.7.0-branch Commit: 2abbdec1efa280562af97429d913a20d64a53006 https://github.com/WebKit/WebKit/commit/2abbdec1efa280562af97429d913a20d64a53006 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.823@safari-7614.3.7.0-branch Commit: 9e50992b213db14fdecd54c0d69c5e9228571d55 https://github.com/WebKit/WebKit/commit/9e50992b213db14fdecd54c0d69c5e9228571d55 Author: Matthew Finkel <sys...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebCore/loader/FrameLoader.cpp Log Message: ----------- Cherry-pick b25c50a4df75. rdar://problem/101776770 Correctly handle loading subframes in WebArchives https://bugs.webkit.org/show_bug.cgi?id=247292 rdar://101776770 Reviewed by Chris Dumez. When WebArchives are loaded, the URL associated with each resource has "webarchive+" prepended on its scheme. This ensures cross-origin isolation between the document loaded from a WebArchive and an externally loaded document. This prefixed-scheme is affecting iframe loading because it results in an unrecognized scheme that can't be handled. Now we obtain the original scheme by stripping the prefix, and we use this modified scheme in the request URL. * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::loadArchive): Canonical link: https://commits.webkit.org/252432.809@safari-7614-branch Canonical link: https://commits.webkit.org/252432.824@safari-7614.3.7.0-branch Commit: b421bc10bc3edf654aa5f862b97c42bafc6e1922 https://github.com/WebKit/WebKit/commit/b421bc10bc3edf654aa5f862b97c42bafc6e1922 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebCore/loader/FrameLoader.cpp Log Message: ----------- Revert b25c50a4df75. rdar://problem/101776770 This reverts commit 9e50992b213db14fdecd54c0d69c5e9228571d55. Canonical link: https://commits.webkit.org/252432.825@safari-7614.3.7.0-branch Commit: 1d8da528b5e95725ac5c8f9e991e9d3cc0707ac5 https://github.com/WebKit/WebKit/commit/1d8da528b5e95725ac5c8f9e991e9d3cc0707ac5 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.0.4 Canonical link: https://commits.webkit.org/252432.826@safari-7614.3.7.0-branch Commit: b6d6b2ec5a51dccd31bf877e185f64d0e952adda https://github.com/WebKit/WebKit/commit/b6d6b2ec5a51dccd31bf877e185f64d0e952adda 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.827@safari-7614.3.7.0-branch Commit: f913da445edefd85eabe00291cd8a566a8ce7f23 https://github.com/WebKit/WebKit/commit/f913da445edefd85eabe00291cd8a566a8ce7f23 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm Log Message: ----------- Revert 5d4cfd0b4223. rdar://problem/102292977 Canonical link: https://commits.webkit.org/252432.828@safari-7614.3.7.0-branch Commit: 0189004b281d97cb220a901498b9bf5c56366891 https://github.com/WebKit/WebKit/commit/0189004b281d97cb220a901498b9bf5c56366891 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm Log Message: ----------- Revert da5e573f8723. rdar://problem/102292977 Canonical link: https://commits.webkit.org/252432.829@safari-7614.3.7.0-branch Commit: dc9ff156c1ac558224262c0635656883ff491dc2 https://github.com/WebKit/WebKit/commit/dc9ff156c1ac558224262c0635656883ff491dc2 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm Log Message: ----------- Revert bc90c50c6ba8. rdar://problem/102292977 Canonical link: https://commits.webkit.org/252432.830@safari-7614.3.7.0-branch Commit: b82a4fafa8c9709eb3820d30593ecd1a7b6399eb https://github.com/WebKit/WebKit/commit/b82a4fafa8c9709eb3820d30593ecd1a7b6399eb Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm Log Message: ----------- Cherry-pick bc90c50c6ba8. rdar://problem/102292977 This reverts commit dc9ff156c1ac558224262c0635656883ff491dc2. Canonical link: https://commits.webkit.org/252432.831@safari-7614.3.7.0-branch Commit: 52d2c3f658cdaad898374a749a21bc05b296465b https://github.com/WebKit/WebKit/commit/52d2c3f658cdaad898374a749a21bc05b296465b Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm Log Message: ----------- Cherry-pick da5e573f8723. rdar://problem/102292977 This reverts commit 0189004b281d97cb220a901498b9bf5c56366891. Canonical link: https://commits.webkit.org/252432.832@safari-7614.3.7.0-branch Commit: 83bdf857ba3b89a5b91407ccd29c9065d26152d4 https://github.com/WebKit/WebKit/commit/83bdf857ba3b89a5b91407ccd29c9065d26152d4 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/RedirectSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm M Source/WebKit/UIProcess/Cocoa/SOAuthorization/WKSOAuthorizationDelegate.mm Log Message: ----------- Cherry-pick 5d4cfd0b4223. rdar://problem/102292977 This reverts commit f913da445edefd85eabe00291cd8a566a8ce7f23. Canonical link: https://commits.webkit.org/252432.833@safari-7614.3.7.0-branch Commit: 9231fdd1710e1065e188067cff20c7f41164d2c0 https://github.com/WebKit/WebKit/commit/9231fdd1710e1065e188067cff20c7f41164d2c0 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-17 (Thu, 17 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.0.5 Canonical link: https://commits.webkit.org/252432.834@safari-7614.3.7.0-branch Commit: 2542ee3628be51d7d49e58f9295b299a30912943 https://github.com/WebKit/WebKit/commit/2542ee3628be51d7d49e58f9295b299a30912943 Author: Russell Epstein <repst...@apple.com> Date: 2022-11-23 (Wed, 23 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.0.6 Canonical link: https://commits.webkit.org/252432.835@safari-7614.3.7.0-branch Commit: 01b2449ae5fb6dad8c4d0282794d73bb22833605 https://github.com/WebKit/WebKit/commit/01b2449ae5fb6dad8c4d0282794d73bb22833605 Author: Mark Lam <mark....@apple.com> Date: 2022-11-27 (Sun, 27 Nov 2022) Changed paths: A JSTests/stress/speculate-real-number-in-object-is.js M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp Log Message: ----------- Cherry-pick 71cdc1c09ef1. rdar://problem/102700198 The provenType filtering in FTL's speculateRealNumber is incorrect. https://bugs.webkit.org/show_bug.cgi?id=248266 <rdar://problem/102531234> Reviewed by Justin Michaud. speculateRealNumber does a doubleEqual compare, which filters out double values which are not NaN. NaN values will fall through to the `intCase` block. In the `intCase` block, the isNotInt32() check there was given a proven type that wrongly filters out ~SpecFullDouble. Consider a scenario where the edge was proven to be { SpecInt32Only, SpecDoubleReal, SpecDoublePureNaN }. SpecFullDouble is defined as SpecDoubleReal | SpecDoubleNaN, and SpecDoubleNaN is defined as SpecDoublePureNaN | SpecDoubleImpureNaN. Hence, the filtering of the proven type with ~SpecFullDouble means that isNotInt32() will effectively be given a proven type of { SpecInt32Only, SpecDoubleReal, SpecDoublePureNaN } - { SpecDoubleReal, SpecDoublePureNaN } which yields { SpecInt32Only }. As a result, the compiler will think that that isNotIn32() check will always fail. This is not correct if the actual incoming value for that edge is actually a PureNaN. In this case, speculateRealNumber should have OSR exited, but it doesn't because it thinks that the isNotInt32() check will always fail and elide the check altogether. In this patch, we fix this by replacing the ~SpecFullDouble with ~SpecDoubleReal. We also rename the `intCase` block to `intOrNaNCase` to document what it actually handles. * JSTests/stress/speculate-real-number-in-object-is.js: Added. (test.object_is_opt): (test): * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq): Canonical link: https://commits.webkit.org/252432.839@safari-7614-branch Canonical link: https://commits.webkit.org/252432.836@safari-7614.3.7.0-branch Commit: 2a06906ad2fa9941f09b02b3b4a38f053ffce910 https://github.com/WebKit/WebKit/commit/2a06906ad2fa9941f09b02b3b4a38f053ffce910 Author: Alan Coon <alanc...@apple.com> Date: 2022-12-03 (Sat, 03 Dec 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.0.7 Canonical link: https://commits.webkit.org/252432.837@safari-7614.3.7.0-branch Compare: https://github.com/WebKit/WebKit/compare/27039b0e60e9%5E...2a06906ad2fa _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes