Branch: refs/heads/safari-7614.3.7.2-branch
  Home:   https://github.com/WebKit/WebKit
  Commit: 2d1cbc7d47a94183efcfee83b53f81f51e0a1732
      
https://github.com/WebKit/WebKit/commit/2d1cbc7d47a94183efcfee83b53f81f51e0a1732
  Author: Alan Coon <alanc...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    M Source/JavaScriptCore/Configurations/Version.xcconfig
    M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
    M Source/WebCore/Configurations/Version.xcconfig
    M Source/WebCore/PAL/Configurations/Version.xcconfig
    M Source/WebGPU/Configurations/Version.xcconfig
    M Source/WebInspectorUI/Configurations/Version.xcconfig
    M Source/WebKit/Configurations/Version.xcconfig
    M Source/WebKitLegacy/mac/Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7614.3.7.2.1

Canonical link: https://commits.webkit.org/252432.805@safari-7614.3.7.2-branch


  Commit: c7e21bf141799f6c04bb0a069489e9465a522ae7
      
https://github.com/WebKit/WebKit/commit/c7e21bf141799f6c04bb0a069489e9465a522ae7
  Author: Youenn Fablet <youe...@gmail.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    A 
LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt
    A LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.h
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
    M Source/WebCore/dom/EventNames.h
    M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp
    M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M 
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h
    M 
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm
    M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp
    M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm
    M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.messages.in
    M Source/WebKit/UIProcess/API/C/WKPage.cpp
    M Source/WebKit/UIProcess/API/C/WKPagePrivate.h
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h
    M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp
    M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h
    M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
    M Tools/WebKitTestRunner/TestController.cpp
    M Tools/WebKitTestRunner/TestController.h
    M Tools/WebKitTestRunner/TestInvocation.cpp

  Log Message:
  -----------
  Cherry-pick 78a2a0119f7b. rdar://problem/100335624

    [iOS] Fire configurationchange event in case of switching automatically to 
another microphone while capturing
    https://bugs.webkit.org/show_bug.cgi?id=244535
    rdar://problem/99331061

    Reviewed by Eric Carlson.

    On iOS, the user may change of audio device through control center, while 
capturing.
    In that case, the microphone automatically switches to the new device.
    To expose this to the WebPage, we can use configurationchange event.
    The flow is:
    - AVAudioSessionCaptureDeviceManager detects microphone change
    - CoreAudioSharedUnit notifies CoreAudioCaptureSource in GPUProcess.
    - UserMediaCaptureManagerProxy is notified by CoreAudioCaptureSource and 
notifies UserMediaCaptureManager through IPC.
    - UserMediaCaptureManager in WebProcess notifies its source which notifies 
its MediaStreamTrack(s).
    - At the same time, settings and capabilities are updated.

    We add a mock API to test this code path.

    Covered by 
LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html.

    * 
LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt: 
Added.
    * LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html: 
Added.
    * Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
    (WebCore::MediaStreamTrack::trackConfigurationChanged):
    * Source/WebCore/Modules/mediastream/MediaStreamTrack.h:
    * Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:
    * Source/WebCore/dom/EventNames.h:
    * Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp:
    (WebCore::MediaStreamTrackPrivate::sourceConfigurationChanged):
    * Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h:
    * Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
    (WebCore::RealtimeMediaSource::RealtimeMediaSource):
    (WebCore::RealtimeMediaSource::setPersistentId):
    (WebCore::RealtimeMediaSource::initializePersistentId):
    * Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
    * 
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
    * 
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
    
(WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices
 const):
    * Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp:
    (WebCore::BaseAudioSharedUnit::handleNewCurrentMicrophoneDevice):
    * Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h:
    * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:
    (WebCore::CoreAudioCaptureSource::handleNewCurrentMicrophoneDevice):
    * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
    * Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm:
    
(WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):
    * Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
    
(WebCore::MockRealtimeMediaSourceCenter::triggerMockMicrophoneConfigurationChange):
    * Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h:
    * Source/WebKit/GPUProcess/GPUProcess.cpp:
    (WebKit::GPUProcess::triggerMockMicrophoneConfigurationChange):
    * Source/WebKit/GPUProcess/GPUProcess.h:
    * Source/WebKit/GPUProcess/GPUProcess.messages.in:
    * Source/WebKit/UIProcess/API/C/WKPage.cpp:
    (WKPageTriggerMockMicrophoneConfigurationChange):
    * Source/WebKit/UIProcess/API/C/WKPagePrivate.h:
    * Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
    * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
    (WebKit::GPUProcessProxy::triggerMockMicrophoneConfigurationChange):
    * Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
    * Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
    (WebKit::RemoteRealtimeMediaSource::configurationChanged):
    * Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h:
    * Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:
    (WebKit::UserMediaCaptureManager::sourceConfigurationChanged):
    * Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h:
    * Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in:
    * Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
    * Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
    (WTR::TestRunner::triggerMockMicrophoneConfigurationChange):
    * Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
    * Tools/WebKitTestRunner/TestController.cpp:
    (WTR::TestController::triggerMockMicrophoneConfigurationChange):
    * Tools/WebKitTestRunner/TestController.h:
    * Tools/WebKitTestRunner/TestInvocation.cpp:
    (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

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

Canonical link: https://commits.webkit.org/252432.806@safari-7614.3.7.2-branch


  Commit: f18d06522d0b5e169ba457a991da634f9c44bc85
      
https://github.com/WebKit/WebKit/commit/f18d06522d0b5e169ba457a991da634f9c44bc85
  Author: Youenn Fablet <youe...@gmail.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h
    M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
    M Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html

  Log Message:
  -----------
  Cherry-pick 3142453d3762. rdar://problem/100335624

    enumerateDevices may return filtered devices even if page is capturing
    https://bugs.webkit.org/show_bug.cgi?id=244713
    rdar://problem/99484964

    Reviewed by Eric Carlson.

    Stop using m_grantedRequests for enumerateDevices since it might be reset 
to ask for prompting again.
    Instead, manage a HashSet<FrameID> to store whether a particular document 
can get access to the whole information.
    We still reset this hash set in case we are ordered to stop capture.

    * Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
    (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
    (WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
    (WebKit::UserMediaPermissionRequestManagerProxy::searchForGrantedRequest 
const):
    (WebKit::UserMediaPermissionRequestManagerProxy::updateStoredRequests):
    
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
    
(WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForCamera
 const):
    
(WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForMicrophone
 const):
    
(WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess):
    
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
    (WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged):
    (WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired):
    * Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h:
    * Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
    * Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html:

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

Canonical link: https://commits.webkit.org/252432.807@safari-7614.3.7.2-branch


  Commit: b171154b284e77a5fafab7fd9cf34af21713ac1b
      
https://github.com/WebKit/WebKit/commit/b171154b284e77a5fafab7fd9cf34af21713ac1b
  Author: Philippe Normand <ph...@igalia.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
    M 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h

  Log Message:
  -----------
  Cherry-pick e6b4012424bf. rdar://problem/100335624

    [GStreamer][WebRTC] Events forwarding between end-point and its consumers
    https://bugs.webkit.org/show_bug.cgi?id=247126

    Reviewed by Xabier Rodriguez-Calvar.

    We need to relay upstream events coming from depayloaders to webrtcbin and 
we also need to relay
    downstream events from webrtcbin to the incoming media sources. This should 
help improving RTP
    retransmission, for instance.

    RealtimeIncomingSourceGStreamer now directly inherits from 
RealtimeMediaSource in order to avoid
    duplication of the downstream event handling in each sub-class.

    * Source/WebCore/platform/mediastream/RealtimeMediaSource.h:
    * 
Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
    * 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp:
    
(WebCore::RealtimeIncomingAudioSourceGStreamer::RealtimeIncomingAudioSourceGStreamer):
    * 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h:
    * 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp:
    (WebCore::RealtimeIncomingSourceGStreamer::RealtimeIncomingSourceGStreamer):
    (WebCore::RealtimeIncomingSourceGStreamer::registerClient):
    (WebCore::RealtimeIncomingSourceGStreamer::handleUpstreamEvent):
    (WebCore::RealtimeIncomingSourceGStreamer::handleDownstreamEvent):
    * 
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h:

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

Canonical link: https://commits.webkit.org/252432.808@safari-7614.3.7.2-branch


  Commit: 04bf4b29d7b3ed0f476c62673bd1bcbb801d831f
      
https://github.com/WebKit/WebKit/commit/04bf4b29d7b3ed0f476c62673bd1bcbb801d831f
  Author: Eric Carlson <eric.carl...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

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

  Log Message:
  -----------
  Cherry-pick 0ee91ab89adb. rdar://problem/100335624

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

    Reviewed by Jer Noble.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Canonical link: https://commits.webkit.org/252432.809@safari-7614.3.7.2-branch


  Commit: afee474aa1d5a1644e26783e7c223cc4f2396bbf
      
https://github.com/WebKit/WebKit/commit/afee474aa1d5a1644e26783e7c223cc4f2396bbf
  Author: Youenn Fablet <youe...@gmail.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    M Source/WebCore/Modules/mediastream/RTCNetworkManager.h
    M Source/WebCore/dom/Document.cpp
    M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp
    M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.h

  Log Message:
  -----------
  Cherry-pick f394e0a05ff1. rdar://problem/99799545

    Explicitly close a document RTCNetworkManager on document teardown
    https://bugs.webkit.org/show_bug.cgi?id=247413
    rdar://99799545

    Reviewed by Eric Carlson.

    The combination of keeping a WeakPtr of a ThreadSafeRefCounted is 
problematic,
    as we might have lost the last Ref/RefPtr (hence the object is scheduled to 
be deleted)
    but we still have a non null reference via a WeakPtr, which we could 
potentially create a new Ref on it.
    We fix the particular issue here by closing explicitly 
LibWebRTCNetworkManager
    which will remove the LibWebRTCNetworkManager from the WebRTCMonitor 
WeakHashSet.
    Add ASSERTs to ensure close is called before destroying 
LibWebRTCNetworkManager.

    * Source/WebCore/Modules/mediastream/RTCNetworkManager.h:
    * Source/WebCore/dom/Document.cpp:
    (WebCore::Document::commonTeardown):
    * Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:
    (WebKit::LibWebRTCNetworkManager::getOrCreate):
    (WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager):
    (WebKit::LibWebRTCNetworkManager::~LibWebRTCNetworkManager):
    (WebKit::LibWebRTCNetworkManager::close):

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

Canonical link: https://commits.webkit.org/252432.810@safari-7614.3.7.2-branch


  Commit: 54fd7630e37ac8f17fcbf4f2f1b4d48a306f3988
      
https://github.com/WebKit/WebKit/commit/54fd7630e37ac8f17fcbf4f2f1b4d48a306f3988
  Author: Myles C. Maxfield <mmaxfi...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/encoding/resources/unsupported-labels.window.js
    A 
LayoutTests/imported/w3c/web-platform-tests/encoding/unsupported-labels-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/encoding/unsupported-labels.html
    A 
LayoutTests/platform/gtk/imported/w3c/web-platform-tests/encoding/unsupported-labels-expected.txt
    M Source/WebCore/PAL/pal/text/TextCodecICU.cpp

  Log Message:
  -----------
  Cherry-pick 996fc9db28be. rdar://problem/100893154

    The EUC-TW encoding doesn't have a canonical name
    https://bugs.webkit.org/show_bug.cgi?id=246242
    rdar://100893154

    Reviewed by Alex Christensen.

    ucnv_getCanonicalName("EUC-TW", "IANA") is returning nullptr, which is 
causing
    us to memcmp(nullptr, ...). This patch reorganizes the file to call 
ucnv_getName()
    in the situations where ucnv_getCanonicalName() is returning nullptr, 
thereby
    elliminating the need for all the special cases.

    Test: imported/w3c/web-platform-tests/encoding/unsupported-labels.html

    * Source/WebCore/PAL/pal/text/TextCodecICU.cpp:
    (PAL::TextCodecICU::registerCodecs):
    (PAL::TextCodecICU::TextCodecICU):

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

Canonical link: https://commits.webkit.org/252432.811@safari-7614.3.7.2-branch


  Commit: 9fe521470468a397539a5a4846b413625cf7cfff
      
https://github.com/WebKit/WebKit/commit/9fe521470468a397539a5a4846b413625cf7cfff
  Author: David Degazio <d_dega...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    A JSTests/stress/intl-locale-invalid-hourCycles.js
    M Source/JavaScriptCore/runtime/IntlLocale.cpp

  Log Message:
  -----------
  Cherry-pick 86fbeb6fcd63. rdar://problem/102031379

    Intl.Locale.prototype.hourCycles leaks empty JSValue to script
    https://bugs.webkit.org/show_bug.cgi?id=247562
    rdar://102031379

    Reviewed by Mark Lam.

    We currently don't check if IntlLocale::hourCycles returns a null JSArray, 
which allows it
    to be encoded as an empty JSValue and exposed to user code. This patch 
throws a TypeError
    when udatpg_open returns a failed status.

    * JSTests/stress/intl-locale-invalid-hourCycles.js: Added.
    (main):
    * Source/JavaScriptCore/runtime/IntlLocale.cpp:
    (JSC::IntlLocale::hourCycles):

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

Canonical link: https://commits.webkit.org/252432.812@safari-7614.3.7.2-branch


  Commit: a17447cf7bafa43153abe62e790b90207147197a
      
https://github.com/WebKit/WebKit/commit/a17447cf7bafa43153abe62e790b90207147197a
  Author: Justin Michaud <justin_mich...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    A JSTests/stress/delete-cache-error.js
    A JSTests/stress/get-own-property-slot-cache-error.js
    A JSTests/stress/get-property-cache-error.js
    M Source/JavaScriptCore/runtime/ErrorInstance.cpp
    M Source/JavaScriptCore/runtime/ErrorInstance.h

  Log Message:
  -----------
  Cherry-pick 28686e63de0d. rdar://problem/101906709

    Error() ICs should not cache special properties.
    https://bugs.webkit.org/show_bug.cgi?id=247699

    Reviewed by Yusuke Suzuki.

    HasOwnProperty/DeleteProperty are not always cacheable for special Error()
    properties like column. These special properties are materialized on-demand
    in materializeErrorInfoIfNeeded, but this function's behaviour can be 
changed
    by Error.stackTraceLimit without causing a structure transition or firing 
watchpoints.

    That is, we cannot cache property misses, and we cannot assume 
HasOwnProperty is deterministic
    for a given structure if we are using one of these properties.

    * Source/JavaScriptCore/runtime/ErrorInstance.cpp:
    (JSC::ErrorInstance::deleteProperty):
    * Source/JavaScriptCore/runtime/ErrorInstance.h:

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

Canonical link: https://commits.webkit.org/252432.813@safari-7614.3.7.2-branch


  Commit: 8aeadeaaadb30125cead91fae26f782d72418f22
      
https://github.com/WebKit/WebKit/commit/8aeadeaaadb30125cead91fae26f782d72418f22
  Author: Eric Carlson <eric.carl...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Cherry-pick ff70798d7add. rdar://problem/100335624

    REGRESSION (256161@main): [ macOS Debug ] 
TestWebKitAPI.GPUProcess.OnlyLaunchesGPUProcessWhenNecessaryMediaFeatureDetection
 is a consistent failure
    https://bugs.webkit.org/show_bug.cgi?id=247775
    rdar://102221029

    Reviewed by Darin Adler and John Wilander.

    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::didCommitLoadForFrame): Use 
`m_userMediaPermissionRequestManager`
    instead of `userMediaPermissionRequestManager()`` so we don't create the 
manager, and thus
    the GPU process, if it doesn't already exist.

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

Canonical link: https://commits.webkit.org/252432.814@safari-7614.3.7.2-branch


  Commit: ca37ec8163d9de378db43f4b50c146fdbdb2c8dd
      
https://github.com/WebKit/WebKit/commit/ca37ec8163d9de378db43f4b50c146fdbdb2c8dd
  Author: Alan Coon <alanc...@apple.com>
  Date:   2022-11-12 (Sat, 12 Nov 2022)

  Changed paths:
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp

  Log Message:
  -----------
  Cherry-pick 082f404b4d5a. rdar://problem/100335624

    Apply build fix. rdar://problem/100335624

    Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:316:39: 
error: no member named 'object' in 
'WTF::ObjectIdentifier<WebCore::FrameIdentifierType>'

    Canonical link: 
https://commits.webkit.org/252432.818@safari-7614.3.7.0-branch

Canonical link: https://commits.webkit.org/252432.815@safari-7614.3.7.2-branch


  Commit: a2d05241c8c42a65a7b470b4d5c862f2ce030cfc
      
https://github.com/WebKit/WebKit/commit/a2d05241c8c42a65a7b470b4d5c862f2ce030cfc
  Author: Alan Coon <alanc...@apple.com>
  Date:   2022-11-14 (Mon, 14 Nov 2022)

  Changed paths:
    M Source/JavaScriptCore/Configurations/Version.xcconfig
    M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
    M Source/WebCore/Configurations/Version.xcconfig
    M Source/WebCore/PAL/Configurations/Version.xcconfig
    M Source/WebGPU/Configurations/Version.xcconfig
    M Source/WebInspectorUI/Configurations/Version.xcconfig
    M Source/WebKit/Configurations/Version.xcconfig
    M Source/WebKitLegacy/mac/Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7614.3.7.2.2

Canonical link: https://commits.webkit.org/252432.816@safari-7614.3.7.2-branch


  Commit: b38b5029a2a01e91f9512ae36b90c8f839c1f999
      
https://github.com/WebKit/WebKit/commit/b38b5029a2a01e91f9512ae36b90c8f839c1f999
  Author: Alan Coon <alanc...@apple.com>
  Date:   2022-11-14 (Mon, 14 Nov 2022)

  Changed paths:
    M 
LayoutTests/platform/wk2/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt
    M 
LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt
    M Source/WTF/Scripts/Preferences/WebPreferences.yaml
    M Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm
    M Source/WebCore/loader/DocumentLoader.cpp
    M Source/WebCore/loader/DocumentLoader.h
    M Source/WebCore/loader/ResourceLoader.cpp
    M Source/WebCore/loader/archive/ArchiveResourceCollection.cpp
    M Source/WebCore/loader/archive/ArchiveResourceCollection.h
    M Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
    M Source/WebCore/loader/archive/cf/LegacyWebArchive.h
    M Source/WebCore/page/SecurityOrigin.cpp
    M Source/WebKit/UIProcess/API/C/WKPreferences.cpp
    M Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h
    M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h
    M Source/WebKitLegacy/mac/WebView/WebView.mm
    M Tools/TestWebKitAPI/Tests/mac/LoadWebArchive.mm

  Log Message:
  -----------
  Revert 1eb47513afb8. rdar://problem/88406961

This reverts commit cd668439f112861d26613c1adca9629fd89c1c35.

Canonical link: https://commits.webkit.org/252432.817@safari-7614.3.7.2-branch


Compare: https://github.com/WebKit/WebKit/compare/2d1cbc7d47a9%5E...b38b5029a2a0
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to