Branch: refs/heads/safari-7614.3.7.1-branch
Home: https://github.com/WebKit/WebKit
Commit: 87e8fef0cc73804e23d61a743dc4c7c8fdeacbd6
https://github.com/WebKit/WebKit/commit/87e8fef0cc73804e23d61a743dc4c7c8fdeacbd6
Author: Alan Coon <[email protected]>
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.1.1
Canonical link: https://commits.webkit.org/[email protected]
Commit: 83009cd42d65dc89ae5354e733f8adf282ba5d4c
https://github.com/WebKit/WebKit/commit/83009cd42d65dc89ae5354e733f8adf282ba5d4c
Author: Alan Bujtas <[email protected]>
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/[email protected]
Commit: 47f67a26efd8158be1abc274d60a3d6abee81d1f
https://github.com/WebKit/WebKit/commit/47f67a26efd8158be1abc274d60a3d6abee81d1f
Author: Alan Coon <[email protected]>
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.1.2
Canonical link: https://commits.webkit.org/[email protected]
Commit: 44b882d921efca8b88c4fdbee8991dfa18fe492c
https://github.com/WebKit/WebKit/commit/44b882d921efca8b88c4fdbee8991dfa18fe492c
Author: Youenn Fablet <[email protected]>
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/[email protected]
Commit: 0562b656bb1b5105336d3df67b2de4700c32157a
https://github.com/WebKit/WebKit/commit/0562b656bb1b5105336d3df67b2de4700c32157a
Author: Youenn Fablet <[email protected]>
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/[email protected]
Commit: b8f7a91c2c44a805756c08c3c1294aad57461266
https://github.com/WebKit/WebKit/commit/b8f7a91c2c44a805756c08c3c1294aad57461266
Author: Philippe Normand <[email protected]>
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/[email protected]
Commit: 102e44942cedce1660ffbcd693259447c63be61a
https://github.com/WebKit/WebKit/commit/102e44942cedce1660ffbcd693259447c63be61a
Author: Eric Carlson <[email protected]>
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/[email protected]
Commit: af988f4ce2527857184e6db7507c3bfcdc92a072
https://github.com/WebKit/WebKit/commit/af988f4ce2527857184e6db7507c3bfcdc92a072
Author: Eric Carlson <[email protected]>
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/[email protected]
Commit: a0524ea22c2576d681a6514d9c4af45fba740c90
https://github.com/WebKit/WebKit/commit/a0524ea22c2576d681a6514d9c4af45fba740c90
Author: Alan Coon <[email protected]>
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/[email protected]
Commit: 1fd939a68973346bbe26fce7c72a671b7ceec274
https://github.com/WebKit/WebKit/commit/1fd939a68973346bbe26fce7c72a671b7ceec274
Author: Alan Coon <[email protected]>
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/[email protected]
Commit: 37026c5dcfdf2e50b987fa6bcab03a5448e4c4a5
https://github.com/WebKit/WebKit/commit/37026c5dcfdf2e50b987fa6bcab03a5448e4c4a5
Author: Myles C. Maxfield <[email protected]>
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/[email protected]
Commit: 2a77da0ba07864a2c877ca6c31418775519ca4d7
https://github.com/WebKit/WebKit/commit/2a77da0ba07864a2c877ca6c31418775519ca4d7
Author: David Degazio <[email protected]>
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/[email protected]
Commit: b7e08a0704f042c6a8f7428b4498f52a2600f802
https://github.com/WebKit/WebKit/commit/b7e08a0704f042c6a8f7428b4498f52a2600f802
Author: Justin Michaud <[email protected]>
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/[email protected]
Commit: 03d518f7a0962cb08b0be496f0284d533bd32f82
https://github.com/WebKit/WebKit/commit/03d518f7a0962cb08b0be496f0284d533bd32f82
Author: Matthew Finkel <[email protected]>
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/[email protected]
Commit: a49bbb3cda87116a2ea8991e992fc39a52de7547
https://github.com/WebKit/WebKit/commit/a49bbb3cda87116a2ea8991e992fc39a52de7547
Author: Alan Coon <[email protected]>
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 03d518f7a0962cb08b0be496f0284d533bd32f82.
Canonical link: https://commits.webkit.org/[email protected]
Commit: a35ac4c8f2bd641e98f7f2b2625e19e47c63fc73
https://github.com/WebKit/WebKit/commit/a35ac4c8f2bd641e98f7f2b2625e19e47c63fc73
Author: Alan Coon <[email protected]>
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.1.3
Canonical link: https://commits.webkit.org/[email protected]
Commit: 3ab269bb00cf2186348020f68e3fe5d2488ce35e
https://github.com/WebKit/WebKit/commit/3ab269bb00cf2186348020f68e3fe5d2488ce35e
Author: Alan Coon <[email protected]>
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/[email protected]
Commit: af6252b9f08ad97e10f2cabde80b158f1d79f06e
https://github.com/WebKit/WebKit/commit/af6252b9f08ad97e10f2cabde80b158f1d79f06e
Author: Youenn Fablet <[email protected]>
Date: 2022-11-14 (Mon, 14 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/[email protected]
Commit: 19f0a4aa0096269a8fc675c57fd5be36a2ce57d4
https://github.com/WebKit/WebKit/commit/19f0a4aa0096269a8fc675c57fd5be36a2ce57d4
Author: Alan Coon <[email protected]>
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/[email protected]
Commit: 21b6d5d1854ed829922a58815a6660e67e65c014
https://github.com/WebKit/WebKit/commit/21b6d5d1854ed829922a58815a6660e67e65c014
Author: Alan Coon <[email protected]>
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/[email protected]
Commit: 0951b5a3b8b2f34c4aa38e394e92652ff7cc72ec
https://github.com/WebKit/WebKit/commit/0951b5a3b8b2f34c4aa38e394e92652ff7cc72ec
Author: Alan Coon <[email protected]>
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 21b6d5d1854ed829922a58815a6660e67e65c014.
Canonical link: https://commits.webkit.org/[email protected]
Commit: b03ceeced273834279ff16479f70999f45569ac8
https://github.com/WebKit/WebKit/commit/b03ceeced273834279ff16479f70999f45569ac8
Author: Alan Coon <[email protected]>
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 19f0a4aa0096269a8fc675c57fd5be36a2ce57d4.
Canonical link: https://commits.webkit.org/[email protected]
Commit: ba2cca71c5c44d310d61a76fc16218242208c0b2
https://github.com/WebKit/WebKit/commit/ba2cca71c5c44d310d61a76fc16218242208c0b2
Author: Alan Coon <[email protected]>
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.1.4
Canonical link: https://commits.webkit.org/[email protected]
Commit: 8a25e97f19ec85bc0863cda0dce67497c8c80b26
https://github.com/WebKit/WebKit/commit/8a25e97f19ec85bc0863cda0dce67497c8c80b26
Author: Russell Epstein <[email protected]>
Date: 2022-11-27 (Sun, 27 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.1.5
Canonical link: https://commits.webkit.org/[email protected]
Commit: 370bfa9872ddb8fc71b2f4dec3a9e93eeac3473d
https://github.com/WebKit/WebKit/commit/370bfa9872ddb8fc71b2f4dec3a9e93eeac3473d
Author: Mark Lam <[email protected]>
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/102700430
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/[email protected]
Compare: https://github.com/WebKit/WebKit/compare/87e8fef0cc73%5E...370bfa9872dd
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes