[webkit-changes] [WebKit/WebKit] 2d1cbc: Versioning.

Alan Coon noreply at github.com
Mon Mar 27 14:45:59 PDT 2023


  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 <alancoon at 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 <youennf at 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 <youennf at 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 <philn at 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.carlson at 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 <youennf at 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 <mmaxfield at 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_degazio at 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_michaud at 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.carlson at 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 at 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 <alancoon at 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 <alancoon at 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 <alancoon at 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


More information about the webkit-changes mailing list