Branch: refs/heads/safari-7614.3.7.2-branch
Home: https://github.com/WebKit/WebKit
Commit: 2d1cbc7d47a94183efcfee83b53f81f51e0a1732
https://github.com/WebKit/WebKit/commit/2d1cbc7d47a94183efcfee83b53f81f51e0a1732
Author: Alan Coon <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
M Source/JavaScriptCore/Configurations/Version.xcconfig
M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig
M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
M Source/WebCore/Configurations/Version.xcconfig
M Source/WebCore/PAL/Configurations/Version.xcconfig
M Source/WebGPU/Configurations/Version.xcconfig
M Source/WebInspectorUI/Configurations/Version.xcconfig
M Source/WebKit/Configurations/Version.xcconfig
M Source/WebKitLegacy/mac/Configurations/Version.xcconfig
Log Message:
-----------
Versioning.
WebKit-7614.3.7.2.1
Canonical link: https://commits.webkit.org/[email protected]
Commit: c7e21bf141799f6c04bb0a069489e9465a522ae7
https://github.com/WebKit/WebKit/commit/c7e21bf141799f6c04bb0a069489e9465a522ae7
Author: Youenn Fablet <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
A
LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt
A LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
M Source/WebCore/Modules/mediastream/MediaStreamTrack.h
M Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
M Source/WebCore/dom/EventNames.h
M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp
M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h
M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
M
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h
M
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm
M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp
M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
M Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm
M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h
M Source/WebKit/GPUProcess/GPUProcess.cpp
M Source/WebKit/GPUProcess/GPUProcess.h
M Source/WebKit/GPUProcess/GPUProcess.messages.in
M Source/WebKit/UIProcess/API/C/WKPage.cpp
M Source/WebKit/UIProcess/API/C/WKPagePrivate.h
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h
M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp
M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h
M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in
M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
M Tools/WebKitTestRunner/TestController.cpp
M Tools/WebKitTestRunner/TestController.h
M Tools/WebKitTestRunner/TestInvocation.cpp
Log Message:
-----------
Cherry-pick 78a2a0119f7b. rdar://problem/100335624
[iOS] Fire configurationchange event in case of switching automatically to
another microphone while capturing
https://bugs.webkit.org/show_bug.cgi?id=244535
rdar://problem/99331061
Reviewed by Eric Carlson.
On iOS, the user may change of audio device through control center, while
capturing.
In that case, the microphone automatically switches to the new device.
To expose this to the WebPage, we can use configurationchange event.
The flow is:
- AVAudioSessionCaptureDeviceManager detects microphone change
- CoreAudioSharedUnit notifies CoreAudioCaptureSource in GPUProcess.
- UserMediaCaptureManagerProxy is notified by CoreAudioCaptureSource and
notifies UserMediaCaptureManager through IPC.
- UserMediaCaptureManager in WebProcess notifies its source which notifies
its MediaStreamTrack(s).
- At the same time, settings and capabilities are updated.
We add a mock API to test this code path.
Covered by
LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html.
*
LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt:
Added.
* LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html:
Added.
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::trackConfigurationChanged):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.h:
* Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:
* Source/WebCore/dom/EventNames.h:
* Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::sourceConfigurationChanged):
* Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h:
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::RealtimeMediaSource):
(WebCore::RealtimeMediaSource::setPersistentId):
(WebCore::RealtimeMediaSource::initializePersistentId):
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
*
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
*
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices
const):
* Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp:
(WebCore::BaseAudioSharedUnit::handleNewCurrentMicrophoneDevice):
* Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h:
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::handleNewCurrentMicrophoneDevice):
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm:
(WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::triggerMockMicrophoneConfigurationChange):
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h:
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::triggerMockMicrophoneConfigurationChange):
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageTriggerMockMicrophoneConfigurationChange):
* Source/WebKit/UIProcess/API/C/WKPagePrivate.h:
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::triggerMockMicrophoneConfigurationChange):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
(WebKit::RemoteRealtimeMediaSource::configurationChanged):
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h:
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::sourceConfigurationChanged):
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h:
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::triggerMockMicrophoneConfigurationChange):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::triggerMockMicrophoneConfigurationChange):
* Tools/WebKitTestRunner/TestController.h:
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Canonical link: https://commits.webkit.org/254035@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: f18d06522d0b5e169ba457a991da634f9c44bc85
https://github.com/WebKit/WebKit/commit/f18d06522d0b5e169ba457a991da634f9c44bc85
Author: Youenn Fablet <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h
M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
M Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html
Log Message:
-----------
Cherry-pick 3142453d3762. rdar://problem/100335624
enumerateDevices may return filtered devices even if page is capturing
https://bugs.webkit.org/show_bug.cgi?id=244713
rdar://problem/99484964
Reviewed by Eric Carlson.
Stop using m_grantedRequests for enumerateDevices since it might be reset
to ask for prompting again.
Instead, manage a HashSet<FrameID> to store whether a particular document
can get access to the whole information.
We still reset this hash set in case we are ordered to stop capture.
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::searchForGrantedRequest
const):
(WebKit::UserMediaPermissionRequestManagerProxy::updateStoredRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForCamera
const):
(WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForMicrophone
const):
(WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired):
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h:
* Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
* Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html:
Canonical link: https://commits.webkit.org/254165@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: b171154b284e77a5fafab7fd9cf34af21713ac1b
https://github.com/WebKit/WebKit/commit/b171154b284e77a5fafab7fd9cf34af21713ac1b
Author: Philippe Normand <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h
Log Message:
-----------
Cherry-pick e6b4012424bf. rdar://problem/100335624
[GStreamer][WebRTC] Events forwarding between end-point and its consumers
https://bugs.webkit.org/show_bug.cgi?id=247126
Reviewed by Xabier Rodriguez-Calvar.
We need to relay upstream events coming from depayloaders to webrtcbin and
we also need to relay
downstream events from webrtcbin to the incoming media sources. This should
help improving RTP
retransmission, for instance.
RealtimeIncomingSourceGStreamer now directly inherits from
RealtimeMediaSource in order to avoid
duplication of the downstream event handling in each sub-class.
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
*
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
*
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp:
(WebCore::RealtimeIncomingAudioSourceGStreamer::RealtimeIncomingAudioSourceGStreamer):
*
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h:
*
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp:
(WebCore::RealtimeIncomingSourceGStreamer::RealtimeIncomingSourceGStreamer):
(WebCore::RealtimeIncomingSourceGStreamer::registerClient):
(WebCore::RealtimeIncomingSourceGStreamer::handleUpstreamEvent):
(WebCore::RealtimeIncomingSourceGStreamer::handleDownstreamEvent):
*
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h:
Canonical link: https://commits.webkit.org/256149@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: 04bf4b29d7b3ed0f476c62673bd1bcbb801d831f
https://github.com/WebKit/WebKit/commit/04bf4b29d7b3ed0f476c62673bd1bcbb801d831f
Author: Eric Carlson <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
A
LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id-expected.txt
A
LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id.html
A
LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-ephemeral-id-iframe.html
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp
A Source/WebCore/Modules/mediastream/MediaDeviceHashSalts.h
M Source/WebCore/Modules/mediastream/MediaDevices.cpp
M Source/WebCore/Modules/mediastream/MediaDevices.h
M Source/WebCore/Modules/mediastream/UserMediaClient.h
M Source/WebCore/Modules/mediastream/UserMediaController.cpp
M Source/WebCore/Modules/mediastream/UserMediaController.h
M Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
M Source/WebCore/Modules/mediastream/UserMediaRequest.h
M Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp
M Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/platform/mediastream/CaptureDevice.h
M Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp
M Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp
M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp
M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h
M Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h
M Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp
M Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h
M Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp
M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp
M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp
M
Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h
M
Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h
M
Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
M Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.h
M Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm
M Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm
M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h
M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
M Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm
M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h
M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm
M Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp
M Source/WebCore/platform/mock/MockMediaDevice.h
M Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp
M Source/WebCore/platform/mock/MockRealtimeAudioSource.h
M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h
M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
M Source/WebCore/platform/mock/MockRealtimeVideoSource.h
M Source/WebKit/GPUProcess/GPUProcess.cpp
M Source/WebKit/GPUProcess/GPUProcess.h
M Source/WebKit/GPUProcess/GPUProcess.messages.in
M Source/WebKit/UIProcess/API/C/WKMockMediaDevice.cpp
M Source/WebKit/UIProcess/API/C/WKMockMediaDevice.h
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h
M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
M Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp
M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h
M Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M
Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp
M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h
M Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/WebProcess.messages.in
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.h
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp
M Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h
M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp
M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h
M Source/WebKit/WebProcess/glib/UserMediaCaptureManager.cpp
M Source/WebKit/WebProcess/glib/UserMediaCaptureManager.h
M Source/WebKit/WebProcess/glib/UserMediaCaptureManager.messages.in
M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
M Tools/WebKitTestRunner/TestController.cpp
M Tools/WebKitTestRunner/TestController.h
M Tools/WebKitTestRunner/TestInvocation.cpp
Log Message:
-----------
Cherry-pick 0ee91ab89adb. rdar://problem/100335624
Use an ephemeral device ID for the Continuity camera when it is not the
system preferred
https://bugs.webkit.org/show_bug.cgi?id=247208
rdar://100335624
Reviewed by Jer Noble.
A "Continuity Camera", an iPhone used as a camera for a Macintosh, is
listed as an
AVCaptureDevice whenever it is in close enough to the Macintosh to be used,
but it is only
the "system preferred camera" when it is in an appropriate position and
orientation to be
used as a camera for the device. This means that a script may remember the
device ID when
a user has set up the phone to be used as a camera, and then pass it to
getUserMedia later
when the phone is near the Macintosh but not usable as a camera - e.g. in
the user's pocket.
To prevent this problem, use a device ID that is only valid for the
lifetime of the
current frame when a Continuity Camera is available but is not the system
preferred camera.
*
LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id-expected.txt:
Added.
*
LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id.html:
Added.
*
LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-ephemeral-id-iframe.html:
Added.
* Source/WTF/wtf/PlatformHave.h: Define HAVE_CONTINUITY_CAMEARA
* Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update for
RealtimeMediaSource constructor
changes.
* Source/WebCore/Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::exposeDevices): Take a MediaDeviceHashSalts instead
of a String
because there are now two hash salts.
(WebCore::MediaDevices::enumerateDevices): Ditto.
* Source/WebCore/Modules/mediastream/MediaDevices.h:
* Source/WebCore/Modules/mediastream/UserMediaClient.h: Ditto.
* Source/WebCore/Modules/mediastream/UserMediaController.cpp:
* Source/WebCore/Modules/mediastream/UserMediaController.h:
(WebCore::UserMediaController::enumerateMediaDevices): Ditto.
* Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow): Ditto.
* Source/WebCore/Modules/mediastream/UserMediaRequest.h:
* Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:
(WebCore::SpeechRecognitionCaptureSource::createRealtimeMediaSource):
Update for
RealtimeMediaSource constructor changes.
* Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto.
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/mediastream/CaptureDevice.h:
(WebCore::CaptureDevice::CaptureDevice): Add `isEphemeral` parameter.
(WebCore::CaptureDevice::setPersistentId):
(WebCore::CaptureDevice::setLabel):
(WebCore::CaptureDevice::isEphemeral const):
(WebCore::CaptureDevice::setIsEphemeral):
(WebCore::CaptureDevice::encode const):
(WebCore::CaptureDevice::decode):
(WebCore::CaptureDevice::isolatedCopy):
* Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Update
for
RealtimeMediaSource constructor changes.
* Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto.
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::toSourceType):
(WebCore::RealtimeMediaSource::RealtimeMediaSource): Take a CaptureDevice
instead of a
type, name, and device ID. Take a MediaDeviceHashSalts instead of a String
for the salts.
(WebCore::RealtimeMediaSource::setPersistentId):
(WebCore::RealtimeMediaSource::initializePersistentId): Calculate
persistent and ephemeral
hashed IDs.
(WebCore::RealtimeMediaSource::fitnessDistance): m_hashedID -> hashedID()
(WebCore::RealtimeMediaSource::hashedId const): Consider ephemeral state.
(WebCore::RealtimeMediaSource::deviceIDHashSalts const):
(WebCore::RealtimeMediaSource::setLogger):
(WebCore::RealtimeMediaSource::deviceIDHashSalt const): Deleted.
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream): Take
MediaDeviceHashSalts with the
hash salts.
(WebCore::RealtimeMediaSourceCenter::getDisplayMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraintsAfterEnumeration):
Ditto.
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h:
* Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h: Ditto.
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h: Ditto.
* Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::RealtimeVideoCaptureSource): Update
for RealtimeMediaSource
constructor changes.
* Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h:
* Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::RealtimeVideoSource): Ditto.
* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::create): Ditto.
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Ditto.
* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:
* Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
* Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
(WebCore::CoreAudioCaptureSourceFactoryIOS::createAudioCaptureSource):
Ditto.
* Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::updateCachedAVCaptureDevices):
(WebCore::toCaptureDevice): Make Continuity Camera ephemeral when it is not
the system
preferred camera.
(WebCore::AVCaptureDeviceManager::retrieveCaptureDevices):
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::create): Update for RealtimeMediaSource
constructor changes.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::create): Ditto.
(WebCore::CoreAudioCaptureSource::createForTesting): Ditto.
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto.
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
(WebCore::CoreAudioCaptureSourceFactory::createAudioCaptureSource):
* Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockRealtimeAudioSource::create): Ditto.
* Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
* Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSourceMac::createForMockDisplayCapturer): Ditto.
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto.
* Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
* Source/WebCore/platform/mock/MockMediaDevice.h:
(WebCore::MockMediaDevice::captureDevice const): Allow to be ephemeral .
(WebCore::MockMediaDevice::encode const):
(WebCore::MockMediaDevice::decodeMockMediaDevice):
(WebCore::MockMediaDevice::decode):
* Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::create): Update for RealtimeMediaSource
constructor changes.
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto.
* Source/WebCore/platform/mock/MockRealtimeAudioSource.h:
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices): No devices are ephemeral by default.
(WebCore::MockDisplayCapturer::MockDisplayCapturer): Update for
RealtimeMediaSource constructor
changes.
(WebCore::MockRealtimeMediaSourceCenter::setDeviceIsEphemeral):
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h:
* Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto.
* Source/WebCore/platform/mock/MockRealtimeVideoSource.h:
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::setMockMediaDeviceIsEphemeral): Added for testing.
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/UIProcess/API/C/WKMockMediaDevice.cpp:
(WKAddMockMediaDevice):
(WKSetMockMediaDeviceIsEphemeral):
* Source/WebKit/UIProcess/API/C/WKMockMediaDevice.h:
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMicrophoneSource):
(WebKit::UserMediaCaptureManagerProxy::createCameraSource):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::setMockMediaDeviceIsEphemeral):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::SpeechRecognitionRemoteRealtimeMediaSource):
(): Deleted.
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
Take MediaDeviceHashSalts
for hash salts.
(WebKit::UserMediaPermissionRequestManagerProxy::didCommitLoadForFrame):
Clear ephemeral
salt for a frame.
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): Ditto.
(WebKit::UserMediaPermissionRequestManagerProxy::ephemeralDeviceHashSaltForFrame):
Calculate
or lookup an ephemeral salt for a frame.
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
Use
MediaDeviceHashSalts.
(WebKit::UserMediaPermissionRequestManagerProxy::platformValidateUserMediaRequestConstraints):
Ditto.
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
Ditto.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
Ditto.
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h:
* Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::setDeviceIdentifierHashSalts):
*HashSalt -> *HashSalts
(WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalts const):
Ditto
(WebKit::UserMediaPermissionRequestProxy::setDeviceIdentifierHashSalt):
Deleted.
(WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalt const):
Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame): Let
UserMediaPermissionRequestManager know the
frame has reloaded so it can clear the ephemeral salt ID.
(WebKit::WebPageProxy::enumerateMediaDevicesForFrame):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setMockMediaDeviceIsEphemeral):
* Source/WebKit/UIProcess/WebProcessPool.h:
*
Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):
* Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
(WebKit::WebUserMediaClient::enumerateMediaDevices):
* Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::userMediaAccessWasGranted):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setMockMediaDeviceIsEphemeral):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
(WebKit::RemoteRealtimeAudioSource::create): Update for RealtimeMediaSource
constructor change.
(WebKit::RemoteRealtimeAudioSource::RemoteRealtimeAudioSource): Ditto.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.h:
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
(WebKit::RemoteRealtimeMediaSource::RemoteRealtimeMediaSource): Ditto.
(WebKit::RemoteRealtimeMediaSource::createRemoteMediaSource): Ditto.
(WebKit::toSourceType): Deleted.
(WebKit::m_manager): Deleted.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h:
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
(WebKit::RemoteRealtimeMediaSourceProxy::createRemoteMediaSource): Ditto.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
(WebKit::RemoteRealtimeVideoSource::create): Ditto.
(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource): Ditto.
(WebKit::RemoteRealtimeVideoSource::clone): Ditto.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h:
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
Ditto.
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
Ditto.
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):
Ditto.
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Add
setMockMediaDeviceIsEphemeral.
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setMockMediaDeviceIsEphemeral):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::setMockMediaDeviceIsEphemeral):
* Tools/WebKitTestRunner/TestController.h:
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Canonical link: https://commits.webkit.org/256161@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: afee474aa1d5a1644e26783e7c223cc4f2396bbf
https://github.com/WebKit/WebKit/commit/afee474aa1d5a1644e26783e7c223cc4f2396bbf
Author: Youenn Fablet <[email protected]>
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/[email protected]
Commit: 54fd7630e37ac8f17fcbf4f2f1b4d48a306f3988
https://github.com/WebKit/WebKit/commit/54fd7630e37ac8f17fcbf4f2f1b4d48a306f3988
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: 9fe521470468a397539a5a4846b413625cf7cfff
https://github.com/WebKit/WebKit/commit/9fe521470468a397539a5a4846b413625cf7cfff
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: a17447cf7bafa43153abe62e790b90207147197a
https://github.com/WebKit/WebKit/commit/a17447cf7bafa43153abe62e790b90207147197a
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: 8aeadeaaadb30125cead91fae26f782d72418f22
https://github.com/WebKit/WebKit/commit/8aeadeaaadb30125cead91fae26f782d72418f22
Author: Eric Carlson <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
Log Message:
-----------
Cherry-pick ff70798d7add. rdar://problem/100335624
REGRESSION (256161@main): [ macOS Debug ]
TestWebKitAPI.GPUProcess.OnlyLaunchesGPUProcessWhenNecessaryMediaFeatureDetection
is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=247775
rdar://102221029
Reviewed by Darin Adler and John Wilander.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame): Use
`m_userMediaPermissionRequestManager`
instead of `userMediaPermissionRequestManager()`` so we don't create the
manager, and thus
the GPU process, if it doesn't already exist.
Canonical link: https://commits.webkit.org/256591@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: ca37ec8163d9de378db43f4b50c146fdbdb2c8dd
https://github.com/WebKit/WebKit/commit/ca37ec8163d9de378db43f4b50c146fdbdb2c8dd
Author: Alan Coon <[email protected]>
Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths:
M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
Log Message:
-----------
Cherry-pick 082f404b4d5a. rdar://problem/100335624
Apply build fix. rdar://problem/100335624
Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:316:39:
error: no member named 'object' in
'WTF::ObjectIdentifier<WebCore::FrameIdentifierType>'
Canonical link:
https://commits.webkit.org/[email protected]
Canonical link: https://commits.webkit.org/[email protected]
Commit: a2d05241c8c42a65a7b470b4d5c862f2ce030cfc
https://github.com/WebKit/WebKit/commit/a2d05241c8c42a65a7b470b4d5c862f2ce030cfc
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.2.2
Canonical link: https://commits.webkit.org/[email protected]
Commit: b38b5029a2a01e91f9512ae36b90c8f839c1f999
https://github.com/WebKit/WebKit/commit/b38b5029a2a01e91f9512ae36b90c8f839c1f999
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]
Compare: https://github.com/WebKit/WebKit/compare/2d1cbc7d47a9%5E...b38b5029a2a0
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes