[webkit-changes] [WebKit/WebKit] 714a90: Versioning.

youennf noreply at github.com
Tue May 14 14:19:34 PDT 2024


  Branch: refs/heads/safari-7619.1.5.99-branch
  Home:   https://github.com/WebKit/WebKit
  Commit: 714a909c9619bcc63de484a167c5e017100b4a48
      https://github.com/WebKit/WebKit/commit/714a909c9619bcc63de484a167c5e017100b4a48
  Author: Russell Epstein <repstein at apple.com>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5

Identifier: 274941.1 at safari-7619.1.5-branch


  Commit: abce2a4d87f0c4e2b755de0104cbfa5747377c7c
      https://github.com/WebKit/WebKit/commit/abce2a4d87f0c4e2b755de0104cbfa5747377c7c
  Author: Garrett Davidson <garrett_davidson at apple.com>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

  Log Message:
  -----------
  Cherry-pick 1d32f0c70849. rdar://123250337

    Add some missing null checks for WebAuthn extension options
    rdar://123161979

    Reviewed by Brent Fulgham.

    Add some missing null checks for WebAuthn extension options.

    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
    (WebKit::WebAuthenticatorCoordinatorProxy::requestsForRegisteration):
    (WebKit::WebAuthenticatorCoordinatorProxy::requestsForAssertion):

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

Identifier: 274471.472 at safari-7619.1.5-branch


  Commit: 5d73ee5d966d2b1a427f35a9217db66c3c78ecad
      https://github.com/WebKit/WebKit/commit/5d73ee5d966d2b1a427f35a9217db66c3c78ecad
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/DrawingArea.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  Cherry-pick 36cd8055de4c. rdar://123211653

    Consume CA render server sandbox extension earlier
    https://bugs.webkit.org/show_bug.cgi?id=269757
    rdar://123211653

    Reviewed by Brent Fulgham and Chris Dumez.

    The sandbox extension needs to be consumed before the drawing area is created.

    * Source/WebKit/WebProcess/WebPage/DrawingArea.cpp:
    (WebKit::DrawingArea::create):
    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:

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

Identifier: 274471.473 at safari-7619.1.5-branch


  Commit: e2cd4b562620f4efc0074a54eea01f5ad491770f
      https://github.com/WebKit/WebKit/commit/e2cd4b562620f4efc0074a54eea01f5ad491770f
  Author: Andy Estes <aestes at apple.com>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WTF/wtf/PlatformEnable.h
    M Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.mm
    M Source/WebKit/Platform/ios/VideoPresentationInterfaceLMK.mm
    M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebKitSwift/LinearMediaKit/WKSLinearMediaPlayer.h
    M Source/WebKit/WebKitSwift/LinearMediaKit/WKSLinearMediaTypes.h

  Log Message:
  -----------
  Cherry-pick 4abab8a63ae6. rdar://123284989

    [visionOS] Enable Linear Media Player at build time and runtime
    https://bugs.webkit.org/show_bug.cgi?id=269767
    rdar://123284989

    Reviewed by Wenson Hsieh.

    Set ENABLE_LINEAR_MEDIA_PLAYER to 1 and enabled the LinearMediaPlayerEnabled runtime setting by
    default.

    While here, fixed an issue where the wrong mach port was specified in the GPU process seatbelt
    profile for using FigVideoTarget rendering and adjusted the imports of WebKitSwift headers to avoid
    creating a circular dependency in the Xcode build system.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WTF/wtf/PlatformEnable.h:
    * Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.mm:
    * Source/WebKit/Platform/ios/VideoPresentationInterfaceLMK.mm:
    * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    * Source/WebKit/WebKitSwift/LinearMediaKit/WKSLinearMediaPlayer.h:
    * Source/WebKit/WebKitSwift/LinearMediaKit/WKSLinearMediaTypes.h:

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

Identifier: 274471.474 at safari-7619.1.5-branch


  Commit: d5ae5f53024c0e1bd0bc489b4a801acc990862c0
      https://github.com/WebKit/WebKit/commit/d5ae5f53024c0e1bd0bc489b4a801acc990862c0
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-02-20 (Tue, 20 Feb 2024)

  Changed paths:
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.cpp
    M Source/WebCore/platform/PODInterval.h

  Log Message:
  -----------
  Cherry-pick 84643ce2ac86. rdar://123324508

    Regression(274445 at main) Hang on twitch.tv when playing certain videos
    https://bugs.webkit.org/show_bug.cgi?id=269810
    rdar://123324508

    Unreviewed partial revert of 274445 at main and full revert of the follow-up
    fix in 274670 at main as it appears to be causing hangs under
    HTMLMediaElement::updateActiveTextTrackCues().

    * Source/WebCore/html/HTMLMediaElement.cpp:
    (WebCore::compareCueInterval):
    (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
    * Source/WebCore/html/HTMLMediaElement.h:
    * Source/WebCore/html/shadow/MediaControlTextTrackContainerElement.cpp:
    (WebCore::compareCueIntervalForDisplay):
    (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
    (WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
    * Source/WebCore/platform/PODInterval.h:

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

Identifier: 274471.475 at safari-7619.1.5-branch


  Commit: 630c7f8265e71251437ff714081422b048dcb507
      https://github.com/WebKit/WebKit/commit/630c7f8265e71251437ff714081422b048dcb507
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WebKit/WebProcess/com.apple.WebProcess.sb.in

  Log Message:
  -----------
  Cherry-pick ce1ce902abaa. rdar://123356564

    GPU resources in the WebContent process should be accessible in some configurations
    https://bugs.webkit.org/show_bug.cgi?id=269851
    rdar://123356564

    Reviewed by Brent Fulgham.

    For some configurations, we still need to have access to GPU resources in the WebContent process.

    * Source/WTF/wtf/PlatformEnableCocoa.h:
    * Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

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

Identifier: 273664.1283 at safari-7619.1.5-branch


  Commit: 9f06d2e101bb724c1740330db90142fddad84fdb
      https://github.com/WebKit/WebKit/commit/9f06d2e101bb724c1740330db90142fddad84fdb
  Author: Kiara Rose <kiara_rose at apple.com>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIStorage.mm

  Log Message:
  -----------
  Cherry-pick 0b437b3e5592. rdar://123336734

    "Activate Cash Back" button doesn’t work for Rakuten
    https://bugs.webkit.org/show_bug.cgi?id=269854
    rdar://123336734

    Reviewed by Brian Weinstein and Timothy Hatcher.

    Only storageArea.sync has a maximum item size limit. In the logs:
    "Exception thrown: Invalid call to storageArea.set(). ... value is invalid, because exceeded maximum size for a single item."

    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm:
    (WebKit::WebExtensionAPIStorageArea::set):

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

Identifier: 273664.1284 at safari-7619.1.5-branch


  Commit: 8a45094d49f69a1ae06faf8cc8864363b7834b55
      https://github.com/WebKit/WebKit/commit/8a45094d49f69a1ae06faf8cc8864363b7834b55
  Author: Andy Estes <aestes at apple.com>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml

  Log Message:
  -----------
  Cherry-pick 6b339dfcfdc1. rdar://123397849

    REGRESSION (275053 at main): Crash in PlaybackSessionInterfaceLMK::seekableRangesChanged when entering fullscreen
    https://bugs.webkit.org/show_bug.cgi?id=269868
    rdar://123397849

    Reviewed by Tim Horton.

    Due to issues in Apple's Production build, libWebKitSwift.dylib may be missing at runtime when
    entering fullscreen on visionOS. Until those issues are resolved, disable the LinearMediaPlayer
    feature at runtime.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

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

Canonical link: https://commits.webkit.org/274941.8@safari-7619.1.5-branch


  Commit: 3aa880bb4d05ccf83119e711878e497ec3e7ac96
      https://github.com/WebKit/WebKit/commit/3aa880bb4d05ccf83119e711878e497ec3e7ac96
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M Source/WebCore/style/StyleTreeResolver.cpp

  Log Message:
  -----------
  Apply patch. rdar://123262218

Identifier: 273664.1286 at safari-7619.1.5-branch


  Commit: b3a92e2f094e15509ad4b7889b5a64d06b64cdc4
      https://github.com/WebKit/WebKit/commit/b3a92e2f094e15509ad4b7889b5a64d06b64cdc4
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-02-21 (Wed, 21 Feb 2024)

  Changed paths:
    M Source/WebCore/style/StyleTreeResolver.cpp

  Log Message:
  -----------
  Revert "Apply patch. rdar://123262218"

This reverts commit 3aa880bb4d05ccf83119e711878e497ec3e7ac96.

Identifier: 273664.1287 at safari-7619.1.5-branch


  Commit: caed76922c054123b7ec02a5ef13a504e61d2c96
      https://github.com/WebKit/WebKit/commit/caed76922c054123b7ec02a5ef13a504e61d2c96
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-619.1.5.1

Identifier: 274471.481 at safari-7619.1.5-branch


  Commit: 2f82f38835c919a1a8644d433f881aaaeabe617a
      https://github.com/WebKit/WebKit/commit/2f82f38835c919a1a8644d433f881aaaeabe617a
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.2

Identifier: 273664.1289 at safari-7619.1.5-branch


  Commit: 9e131aa926aced672c991a0eb24f2a318a09cb00
      https://github.com/WebKit/WebKit/commit/9e131aa926aced672c991a0eb24f2a318a09cb00
  Author: Robin Malhotra <robinm at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    A LayoutTests/http/tests/paymentrequest/ApplePayModifier-disbursementPaymentRequest.https-expected.txt
    A LayoutTests/http/tests/paymentrequest/ApplePayModifier-disbursementPaymentRequest.https.html
    M LayoutTests/platform/ios-wk2/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl
    A Source/WebCore/Modules/applepay/ApplePayDisbursementPaymentRequest.h
    A Source/WebCore/Modules/applepay/ApplePayDisbursementPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePayFeature.h
    M Source/WebCore/Modules/applepay/ApplePayFeature.idl
    M Source/WebCore/Modules/applepay/ApplePayLineItem.h
    M Source/WebCore/Modules/applepay/ApplePayLineItem.idl
    M Source/WebCore/Modules/applepay/ApplePayMerchantCapability.cpp
    M Source/WebCore/Modules/applepay/ApplePayMerchantCapability.h
    M Source/WebCore/Modules/applepay/ApplePayMerchantCapability.idl
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePaySession.cpp
    M Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h
    M Source/WebCore/Modules/applepay/PaymentSummaryItems.h
    M Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/testing/MockPaymentCoordinator.cpp
    M Source/WebCore/testing/MockPaymentCoordinator.h
    M Source/WebCore/testing/MockPaymentCoordinator.idl
    M Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm
    A Source/WebKit/Shared/ApplePay/DisbursementPaymentRequest.h
    A Source/WebKit/Shared/ApplePay/cocoa/DisbursementPaymentRequestCocoa.mm
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
    M Source/WebKit/Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm
    M Source/WebKit/Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Cherry-pick e7d32568225a. rdar://115776022

    [Apple Pay] Support for PKDisbursementRequest on WebKit
    https://bugs.webkit.org/show_bug.cgi?id=267428
    rdar://115776022

    Reviewed by Alex Christensen.
    Originally authored by Robin Malhotra.

    This patch adds support for `PKDisbursementRequest` and associated
    classes. Since `PKDisbursementPaymentRequest` is a subclass and not a
    property, the code paths may sometimes diverge from convention.

    * LayoutTests/http/tests/paymentrequest/ApplePayModifier-disbursementPaymentRequest.https-expected.txt: Added.
    * LayoutTests/http/tests/paymentrequest/ApplePayModifier-disbursementPaymentRequest.https.html: Added.
    * LayoutTests/platform/ios-wk2/TestExpectations:
    * LayoutTests/platform/mac-wk2/TestExpectations:
    * Source/WTF/wtf/PlatformEnableCocoa.h:
    * Source/WebCore/DerivedSources-input.xcfilelist:
    * Source/WebCore/DerivedSources-output.xcfilelist:
    * Source/WebCore/DerivedSources.make:
    * Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h:
    * Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl:
    * Source/WebCore/Modules/applepay/ApplePayDisbursementPaymentRequest.h: Copied from Source/WebCore/Modules/applepay/ApplePayMerchantCapability.h.
    * Source/WebCore/Modules/applepay/ApplePayDisbursementPaymentRequest.idl: Copied from Source/WebCore/Modules/applepay/ApplePayMerchantCapability.idl.
    * Source/WebCore/Modules/applepay/ApplePayFeature.h:
    * Source/WebCore/Modules/applepay/ApplePayFeature.idl:
    * Source/WebCore/Modules/applepay/ApplePayLineItem.h:
    * Source/WebCore/Modules/applepay/ApplePayLineItem.idl:
    * Source/WebCore/Modules/applepay/ApplePayMerchantCapability.cpp:
    (WebCore::convertAndValidate):
    * Source/WebCore/Modules/applepay/ApplePayMerchantCapability.h:
    * Source/WebCore/Modules/applepay/ApplePayMerchantCapability.idl:
    * Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h:
    * Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl:
    * Source/WebCore/Modules/applepay/ApplePaySession.cpp:
    (WebCore::convertAndValidate):
    * Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h:
    (WebCore::ApplePaySessionPaymentRequest::disbursementPaymentRequest const):
    (WebCore::ApplePaySessionPaymentRequest::setDisbursementPaymentRequest):
    * Source/WebCore/Modules/applepay/PaymentSummaryItems.h:
    * Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
    (WebCore::platformDisbursementSummaryItem):
    (WebCore::platformInstantFundsOutFeeSummaryItem):
    (WebCore::platformSummaryItem):
    (WebCore::platformDisbursementSummaryItems):
    * Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h:
    * Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl:
    * Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
    (WebCore::ApplePayPaymentHandler::show):
    (WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
    (WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
    (WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
    * Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h:
    * Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm:
    * Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h:
    * Source/WebCore/SourcesCocoa.txt:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/testing/MockPaymentCoordinator.cpp:
    (WebCore::MockPaymentCoordinator::showPaymentUI):
    (WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
    (WebCore::MockPaymentCoordinator::completeShippingContactSelection):
    (WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
    * Source/WebCore/testing/MockPaymentCoordinator.h:
    * Source/WebCore/testing/MockPaymentCoordinator.idl:
    * Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm:
    (WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
    (WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
    * Source/WebKit/Shared/ApplePay/DisbursementPaymentRequest.h: Copied from Source/WebCore/Modules/applepay/ApplePayMerchantCapability.h.
    * Source/WebKit/Shared/ApplePay/cocoa/DisbursementPaymentRequestCocoa.mm: Added.
    (WebKit::platformDisbursementPaymentRequest):
    * Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
    * Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
    (WebKit::toPKMerchantCapabilities):
    * Source/WebKit/Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
    (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
    * Source/WebKit/Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
    (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

Identifier: 273664.1290 at safari-7619.1.5-branch


  Commit: 7b503104f7e23495a0a34c1892379b4e727ef3d6
      https://github.com/WebKit/WebKit/commit/7b503104f7e23495a0a34c1892379b4e727ef3d6
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/Extensions/WebExtensionConstants.h
    A Source/WebKit/Shared/Extensions/WebExtensionError.h
    M Source/WebKit/Shared/Extensions/WebExtensionFrameIdentifier.h
    M Source/WebKit/Shared/Extensions/WebExtensionUtilities.h
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in
    M Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionTab.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICommandsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionPanelCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIExtensionCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebNavigationCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWindows.mm

  Log Message:
  -----------
  Cherry-pick 1e5e2883c8bd. rdar://123199880

    Use Expected for error reporting in Web Extensions completionHandlers.
    https://webkit.org/b/269681
    rdar://123199880

    Reviewed by Brian Weinstein.

    Instead of using std::optional<String> for errors, and std::optional for the
    real result, wrap them together with Expected to be more efficient.

    Also use r-value references for these results, so the result is moved instead
    of copied when the completionHandler is called.

    Added two helper templates for toWebAPI that that return nil for std::optional
    wrapped objects that have a toWebAPI function, and similarly for Vector wrapped
    objects to get an NSArray result.

    Some other misc drive-by fixes too, like using Ref and RefPtr explicitly, and
    not using toUInt64() when sending a message for the destination identifier.

    All existing Web Extension API tests pass, except WKWebExtensionAPIWindows,
    CreateIncognitoWithoutPrivateAccess needed updated expectations for null.

    * Source/WebKit/Scripts/webkit/messages.py:
    (headers_for_type):
    * Source/WebKit/Shared/Extensions/WebExtensionConstants.h:
    * Source/WebKit/Shared/Extensions/WebExtensionError.h: Added.
    * Source/WebKit/Shared/Extensions/WebExtensionUtilities.h:
    (WebKit::toWebAPI):
    (WebKit::toWebExtensionError):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm:
    (WebKit::getActionWithIdentifiers):
    (WebKit::getOrCreateActionWithIdentifiers):
    (WebKit::WebExtensionContext::actionGetTitle):
    (WebKit::WebExtensionContext::actionSetTitle):
    (WebKit::WebExtensionContext::actionSetIcon):
    (WebKit::WebExtensionContext::actionGetPopup):
    (WebKit::WebExtensionContext::actionSetPopup):
    (WebKit::WebExtensionContext::actionOpenPopup):
    (WebKit::WebExtensionContext::actionGetBadgeText):
    (WebKit::WebExtensionContext::actionSetBadgeText):
    (WebKit::WebExtensionContext::actionGetEnabled):
    (WebKit::WebExtensionContext::actionSetEnabled):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIAlarmsCocoa.mm:
    (WebKit::WebExtensionContext::alarmsGet):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm:
    (WebKit::WebExtensionContext::fetchCookies):
    (WebKit::WebExtensionContext::cookiesGet):
    (WebKit::WebExtensionContext::cookiesGetAll):
    (WebKit::WebExtensionContext::cookiesSet):
    (WebKit::WebExtensionContext::cookiesRemove):
    (WebKit::WebExtensionContext::cookiesGetAllCookieStores):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm:
    (WebKit::WebExtensionContext::declarativeNetRequestGetEnabledRulesets):
    (WebKit::WebExtensionContext::declarativeNetRequestValidateRulesetIdentifiers):
    (WebKit::WebExtensionContext::declarativeNetRequestUpdateEnabledRulesets):
    (WebKit::WebExtensionContext::declarativeNetRequestDisplayActionCountAsBadgeText):
    (WebKit::WebExtensionContext::declarativeNetRequestIncrementActionCount):
    (WebKit::WebExtensionContext::declarativeNetRequestGetMatchedRules):
    (WebKit::WebExtensionContext::updateDeclarativeNetRequestRulesInStorage):
    (WebKit::WebExtensionContext::declarativeNetRequestGetDynamicRules):
    (WebKit::WebExtensionContext::declarativeNetRequestUpdateDynamicRules):
    (WebKit::WebExtensionContext::declarativeNetRequestGetSessionRules):
    (WebKit::WebExtensionContext::declarativeNetRequestUpdateSessionRules):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsInspectedWindow.mm:
    (WebKit::WebExtensionContext::devToolsInspectedWindowEval):
    (WebKit::WebExtensionContext::devToolsInspectedWindowReload):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDevToolsPanels.mm:
    (WebKit::WebExtensionContext::devToolsPanelsCreate):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIMenusCocoa.mm:
    (WebKit::WebExtensionContext::menusCreate):
    (WebKit::WebExtensionContext::menusUpdate):
    (WebKit::WebExtensionContext::menusRemove):
    (WebKit::WebExtensionContext::menusRemoveAll):
    (WebKit::WebExtensionContext::fireMenusClickedEventIfNeeded):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPermissionsCocoa.mm:
    (WebKit::WebExtensionContext::permissionsGetAll):
    (WebKit::WebExtensionContext::permissionsContains):
    (WebKit::WebExtensionContext::permissionsRequest):
    (WebKit::WebExtensionContext::permissionsRemove):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionContext::runtimeGetBackgroundPage):
    (WebKit::WebExtensionContext::runtimeOpenOptionsPage):
    (WebKit::WebExtensionContext::runtimeSendMessage):
    (WebKit::WebExtensionContext::runtimeConnect):
    (WebKit::WebExtensionContext::runtimeSendNativeMessage):
    (WebKit::WebExtensionContext::runtimeConnectNative):
    (WebKit::WebExtensionContext::runtimeWebPageSendMessage):
    (WebKit::WebExtensionContext::runtimeWebPageConnect):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
    (WebKit::WebExtensionContext::scriptingExecuteScript):
    (WebKit::WebExtensionContext::scriptingInsertCSS):
    (WebKit::WebExtensionContext::scriptingRemoveCSS):
    (WebKit::WebExtensionContext::scriptingRegisterContentScripts):
    (WebKit::WebExtensionContext::scriptingUpdateRegisteredScripts):
    (WebKit::WebExtensionContext::scriptingGetRegisteredScripts):
    (WebKit::WebExtensionContext::scriptingUnregisterContentScripts):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm:
    (WebKit::WebExtensionContext::storageGet):
    (WebKit::WebExtensionContext::storageGetBytesInUse):
    (WebKit::WebExtensionContext::storageSet):
    (WebKit::WebExtensionContext::storageRemove):
    (WebKit::WebExtensionContext::storageClear):
    (WebKit::WebExtensionContext::storageSetAccessLevel):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
    (WebKit::WebExtensionContext::tabsCreate):
    (WebKit::WebExtensionContext::tabsUpdate):
    (WebKit::WebExtensionContext::tabsDuplicate):
    (WebKit::WebExtensionContext::tabsGet):
    (WebKit::WebExtensionContext::tabsGetCurrent):
    (WebKit::WebExtensionContext::tabsQuery):
    (WebKit::WebExtensionContext::tabsReload):
    (WebKit::WebExtensionContext::tabsGoBack):
    (WebKit::WebExtensionContext::tabsGoForward):
    (WebKit::WebExtensionContext::tabsDetectLanguage):
    (WebKit::WebExtensionContext::tabsCaptureVisibleTab):
    (WebKit::WebExtensionContext::tabsToggleReaderMode):
    (WebKit::WebExtensionContext::tabsSendMessage):
    (WebKit::WebExtensionContext::tabsConnect):
    (WebKit::WebExtensionContext::tabsGetZoom):
    (WebKit::WebExtensionContext::tabsSetZoom):
    (WebKit::WebExtensionContext::tabsRemove):
    (WebKit::WebExtensionContext::tabsExecuteScript):
    (WebKit::WebExtensionContext::tabsInsertCSS):
    (WebKit::WebExtensionContext::tabsRemoveCSS):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWebNavigationCocoa.mm:
    (WebKit::frameParametersForFrame):
    (WebKit::WebExtensionContext::webNavigationGetFrame):
    (WebKit::WebExtensionContext::webNavigationGetAllFrames):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm:
    (WebKit::WebExtensionContext::windowsCreate):
    (WebKit::WebExtensionContext::windowsGet):
    (WebKit::WebExtensionContext::windowsGetLastFocused):
    (WebKit::WebExtensionContext::windowsGetAll):
    (WebKit::WebExtensionContext::windowsUpdate):
    (WebKit::WebExtensionContext::windowsRemove):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::openNewTab):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionDynamicScriptsCocoa.mm:
    (WebKit::WebExtensionDynamicScripts::InjectionResultHolder::create):
    (WebKit::WebExtensionDynamicScripts::executeScript):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionTabCocoa.mm:
    (WebKit::WebExtensionTab::setParentTab):
    (WebKit::WebExtensionTab::pin):
    (WebKit::WebExtensionTab::unpin):
    (WebKit::WebExtensionTab::toggleReaderMode):
    (WebKit::WebExtensionTab::mute):
    (WebKit::WebExtensionTab::unmute):
    (WebKit::WebExtensionTab::setZoomFactor):
    (WebKit::WebExtensionTab::detectWebpageLocale):
    (WebKit::WebExtensionTab::captureVisibleWebpage):
    (WebKit::WebExtensionTab::loadURL):
    (WebKit::WebExtensionTab::reload):
    (WebKit::WebExtensionTab::reloadFromOrigin):
    (WebKit::WebExtensionTab::goBack):
    (WebKit::WebExtensionTab::goForward):
    (WebKit::WebExtensionTab::activate):
    (WebKit::WebExtensionTab::select):
    (WebKit::WebExtensionTab::deselect):
    (WebKit::WebExtensionTab::duplicate):
    (WebKit::WebExtensionTab::close):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionWindowCocoa.mm:
    (WebKit::WebExtensionWindow::setState):
    (WebKit::WebExtensionWindow::focus):
    (WebKit::WebExtensionWindow::setFrame):
    (WebKit::WebExtensionWindow::close):
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
    * Source/WebKit/UIProcess/Extensions/WebExtensionController.messages.in:
    * Source/WebKit/UIProcess/Extensions/WebExtensionDynamicScripts.h:
    (WebKit::WebExtensionDynamicScripts::InjectionResultHolder::create): Deleted.
    (WebKit::WebExtensionDynamicScripts::InjectionResultHolder::InjectionResultHolder): Deleted.
    * Source/WebKit/UIProcess/Extensions/WebExtensionTab.h:
    * Source/WebKit/UIProcess/Extensions/WebExtensionWindow.h:
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm:
    (WebKit::WebExtensionAPIAction::getTitle):
    (WebKit::WebExtensionAPIAction::setTitle):
    (WebKit::WebExtensionAPIAction::getBadgeText):
    (WebKit::WebExtensionAPIAction::setBadgeText):
    (WebKit::WebExtensionAPIAction::enable):
    (WebKit::WebExtensionAPIAction::disable):
    (WebKit::WebExtensionAPIAction::isEnabled):
    (WebKit::WebExtensionAPIAction::setIcon):
    (WebKit::WebExtensionAPIAction::getPopup):
    (WebKit::WebExtensionAPIAction::setPopup):
    (WebKit::WebExtensionAPIAction::openPopup):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIAlarmsCocoa.mm:
    (WebKit::toWebAPI):
    (WebKit::WebExtensionAPIAlarms::get):
    (WebKit::WebExtensionAPIAlarms::getAll):
    (WebKit::WebExtensionAPIAlarms::clear):
    (WebKit::WebExtensionAPIAlarms::clearAll):
    (WebKit::WebExtensionContextProxy::dispatchAlarmsEvent):
    (WebKit::toAPI): Deleted.
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICommandsCocoa.mm:
    (WebKit::WebExtensionAPICommands::getAll):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm:
    (WebKit::WebExtensionAPICookies::get):
    (WebKit::WebExtensionAPICookies::getAll):
    (WebKit::WebExtensionAPICookies::set):
    (WebKit::WebExtensionAPICookies::remove):
    (WebKit::WebExtensionAPICookies::getAllCookieStores):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm:
    (WebKit::WebExtensionAPIDeclarativeNetRequest::updateEnabledRulesets):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::updateDynamicRules):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::getDynamicRules):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::updateSessionRules):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::getSessionRules):
    (WebKit::toWebAPI):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::getMatchedRules):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::setExtensionActionOptions):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm:
    (WebKit::WebExtensionAPIDevToolsInspectedWindow::eval):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsPanelsCocoa.mm:
    (WebKit::WebExtensionAPIDevToolsPanels::createPanel):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm:
    (WebKit::WebExtensionAPIMenus::createMenu):
    (WebKit::WebExtensionAPIMenus::update):
    (WebKit::WebExtensionAPIMenus::remove):
    (WebKit::WebExtensionAPIMenus::removeAll):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm:
    (WebKit::WebExtensionAPIPermissions::getAll):
    (WebKit::WebExtensionAPIPermissions::contains):
    (WebKit::WebExtensionAPIPermissions::request):
    (WebKit::WebExtensionAPIPermissions::remove):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionAPIRuntime::getBackgroundPage):
    (WebKit::WebExtensionAPIRuntime::openOptionsPage):
    (WebKit::WebExtensionAPIRuntime::sendMessage):
    (WebKit::WebExtensionAPIRuntime::connect):
    (WebKit::WebExtensionAPIRuntime::sendNativeMessage):
    (WebKit::WebExtensionAPIRuntime::connectNative):
    (WebKit::WebExtensionAPIWebPageRuntime::sendMessage):
    (WebKit::WebExtensionAPIWebPageRuntime::connect):
    (WebKit::WebExtensionContextProxy::internalDispatchRuntimeMessageEvent):
    (WebKit::WebExtensionContextProxy::dispatchRuntimeMessageEvent):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm:
    (WebKit::toWebAPI):
    (WebKit::WebExtensionAPIScripting::executeScript):
    (WebKit::WebExtensionAPIScripting::insertCSS):
    (WebKit::WebExtensionAPIScripting::removeCSS):
    (WebKit::WebExtensionAPIScripting::registerContentScripts):
    (WebKit::WebExtensionAPIScripting::getRegisteredContentScripts):
    (WebKit::WebExtensionAPIScripting::updateContentScripts):
    (WebKit::WebExtensionAPIScripting::unregisterContentScripts):
    (WebKit::WebExtensionAPIScripting::validateScript):
    (WebKit::WebExtensionAPIScripting::parseScriptInjectionOptions):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIStorageAreaCocoa.mm:
    (WebKit::WebExtensionAPIStorageArea::get):
    (WebKit::WebExtensionAPIStorageArea::getBytesInUse):
    (WebKit::WebExtensionAPIStorageArea::set):
    (WebKit::WebExtensionAPIStorageArea::remove):
    (WebKit::WebExtensionAPIStorageArea::clear):
    (WebKit::WebExtensionAPIStorageArea::setAccessLevel):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
    (WebKit::WebExtensionAPITabs::createTab):
    (WebKit::WebExtensionAPITabs::query):
    (WebKit::WebExtensionAPITabs::get):
    (WebKit::WebExtensionAPITabs::getCurrent):
    (WebKit::WebExtensionAPITabs::getSelected):
    (WebKit::WebExtensionAPITabs::duplicate):
    (WebKit::WebExtensionAPITabs::update):
    (WebKit::WebExtensionAPITabs::remove):
    (WebKit::WebExtensionAPITabs::reload):
    (WebKit::WebExtensionAPITabs::goBack):
    (WebKit::WebExtensionAPITabs::goForward):
    (WebKit::WebExtensionAPITabs::getZoom):
    (WebKit::WebExtensionAPITabs::setZoom):
    (WebKit::WebExtensionAPITabs::detectLanguage):
    (WebKit::WebExtensionAPITabs::toggleReaderMode):
    (WebKit::WebExtensionAPITabs::captureVisibleTab):
    (WebKit::WebExtensionAPITabs::sendMessage):
    (WebKit::WebExtensionAPITabs::connect):
    (WebKit::WebExtensionAPITabs::executeScript):
    (WebKit::WebExtensionAPITabs::insertCSS):
    (WebKit::WebExtensionAPITabs::removeCSS):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebNavigationCocoa.mm:
    (WebKit::WebExtensionAPIWebNavigation::getAllFrames):
    (WebKit::WebExtensionAPIWebNavigation::getFrame):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm:
    (WebKit::WebExtensionAPIWindows::createWindow):
    (WebKit::WebExtensionAPIWindows::get):
    (WebKit::WebExtensionAPIWindows::getCurrent):
    (WebKit::WebExtensionAPIWindows::getLastFocused):
    (WebKit::WebExtensionAPIWindows::getAll):
    (WebKit::WebExtensionAPIWindows::update):
    (WebKit::WebExtensionAPIWindows::remove):
    (WebKit::WebExtensionContextProxy::dispatchWindowsEvent):
    * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIScripting.h:
    * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
    * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in:

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

Identifier: 274471.484 at safari-7619.1.5-branch


  Commit: 3e55164e5b27b03044cffcf16d95c60362aa4093
      https://github.com/WebKit/WebKit/commit/3e55164e5b27b03044cffcf16d95c60362aa4093
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm

  Log Message:
  -----------
  Cherry-pick 5e245ad06c69. rdar://123407828

    Allow tabs.update to be called without a tabID
    https://bugs.webkit.org/show_bug.cgi?id=269934
    rdar://123407828

    Reviewed by Timothy Hatcher.

    The tabID is an optional argument to tabs.update. We were always attempting to get the value of the optional.

    If it isn't passed, then it is meant to fall back to the active tab of the current context, which means:
    - If this was called from a popup, then the active tab of the popup's window
    - If this was called from the background page, then the active tab of the active window

    This required some refactoring to WebExtensionContext::getTab and WebExtensionContext::getCurrentTab to support this,
    and some tests were added calling this method without a tab ID from both contexts.

    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
    (WebKit::WebExtensionContext::tabsUpdate):
    (WebKit::WebExtensionContext::tabsReload):
    (WebKit::WebExtensionContext::tabsGoBack):
    (WebKit::WebExtensionContext::tabsGoForward):
    (WebKit::WebExtensionContext::tabsDetectLanguage):
    (WebKit::WebExtensionContext::tabsToggleReaderMode):
    (WebKit::WebExtensionContext::tabsGetZoom):
    (WebKit::WebExtensionContext::tabsSetZoom):
    (WebKit::WebExtensionContext::tabsExecuteScript):
    (WebKit::WebExtensionContext::tabsInsertCSS):
    (WebKit::WebExtensionContext::tabsRemoveCSS):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::getWindow const):
    (WebKit::WebExtensionContext::getTab const):
    (WebKit::WebExtensionContext::getCurrentTab const):
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
    (WebKit::WebExtensionAPITabs::update):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm:
    (TestWebKitAPI::TEST):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm:
    (TestWebKitAPI::TEST):

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

Identifier: 274471.485 at safari-7619.1.5-branch


  Commit: 38e3d5969dd825e5845a5860fe0ed6c41cfc3875
      https://github.com/WebKit/WebKit/commit/38e3d5969dd825e5845a5860fe0ed6c41cfc3875
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/Shared/WebPreferencesDefaultValues.h
    M Tools/DumpRenderTree/TestOptions.cpp
    M Tools/WebKitTestRunner/TestOptions.cpp

  Log Message:
  -----------
  Cherry-pick 7a77efe3ef06. rdar://123268364

    Unprefixed backdrop filter should only be enabled when UNPREFIXED_BACKDROP_FILTER is true.
    https://bugs.webkit.org/show_bug.cgi?id=269755
    <rdar://123268364>

    Reviewed by Tim Nguyen.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebKit/Shared/WebPreferencesDefaultValues.h:

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

Identifier: 274471.486 at safari-7619.1.5-branch


  Commit: b3ddf42a17fd3ddf446013db160878d3b8d567e9
      https://github.com/WebKit/WebKit/commit/b3ddf42a17fd3ddf446013db160878d3b8d567e9
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    R LayoutTests/http/tests/paymentrequest/ApplePayModifier-disbursementPaymentRequest.https-expected.txt
    R LayoutTests/http/tests/paymentrequest/ApplePayModifier-disbursementPaymentRequest.https.html
    M LayoutTests/platform/ios-wk2/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl
    R Source/WebCore/Modules/applepay/ApplePayDisbursementPaymentRequest.h
    R Source/WebCore/Modules/applepay/ApplePayDisbursementPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePayFeature.h
    M Source/WebCore/Modules/applepay/ApplePayFeature.idl
    M Source/WebCore/Modules/applepay/ApplePayLineItem.h
    M Source/WebCore/Modules/applepay/ApplePayLineItem.idl
    M Source/WebCore/Modules/applepay/ApplePayMerchantCapability.cpp
    M Source/WebCore/Modules/applepay/ApplePayMerchantCapability.h
    M Source/WebCore/Modules/applepay/ApplePayMerchantCapability.idl
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePaySession.cpp
    M Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h
    M Source/WebCore/Modules/applepay/PaymentSummaryItems.h
    M Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/testing/MockPaymentCoordinator.cpp
    M Source/WebCore/testing/MockPaymentCoordinator.h
    M Source/WebCore/testing/MockPaymentCoordinator.idl
    M Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm
    R Source/WebKit/Shared/ApplePay/DisbursementPaymentRequest.h
    R Source/WebKit/Shared/ApplePay/cocoa/DisbursementPaymentRequestCocoa.mm
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
    M Source/WebKit/Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm
    M Source/WebKit/Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Revert "Cherry-pick e7d32568225a. rdar://115776022"

This reverts commit 9e131aa926aced672c991a0eb24f2a318a09cb00.

Identifier: 273664.1294 at safari-7619.1.5-branch


  Commit: 1c8ad2517a9e125325bbbd494bc60bd342ff6594
      https://github.com/WebKit/WebKit/commit/1c8ad2517a9e125325bbbd494bc60bd342ff6594
  Author: Russell Epstein <repstein at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Source/WebKit/Configurations/WebKitSwift.xcconfig

  Log Message:
  -----------
  Cherry-pick e710caf302f8. rdar://123397704

    Speculative WebKitSwift install_name fix
    rdar://123397704

    Reviewed by Andy Estes.

    * Source/WebKit/Configurations/WebKitSwift.xcconfig:

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

Canonical link: https://commits.webkit.org/274941.18@safari-7619.1.5-branch


  Commit: faf7810559e98160d4604b2be228209c42cdc113
      https://github.com/WebKit/WebKit/commit/faf7810559e98160d4604b2be228209c42cdc113
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

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

  Log Message:
  -----------
  Cherry-pick 350492890293. rdar://123032571

    REGRESSION(274288 at main): Null pointer dereference in `WebPageProxy::activityStateDidChange()`
    https://bugs.webkit.org/show_bug.cgi?id=269754
    rdar://123032571

    Reviewed by Chris Dumez.

    `m_pageClient` is protected in `decidePolicyForNavigationAction()`, but not passed to the created
    lambdas. When `Transaction` is destructed, `activityStateDidChange()` tries to create a strong reference
    to `m_pageClient`, but it may already be destroyed. We should pass `protectedPageClient` into the
    lambdas where `Transaction` is used.

    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::decidePolicyForNavigationAction):

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

Canonical link: https://commits.webkit.org/274941.19@safari-7619.1.5-branch


  Commit: d613cfc629b7bac931296158e094770b30eacb81
      https://github.com/WebKit/WebKit/commit/d613cfc629b7bac931296158e094770b30eacb81
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Source/WebKit/Configurations/WebKitSwift.xcconfig

  Log Message:
  -----------
  Revert "Cherry-pick e710caf302f8. rdar://123397704"

This reverts commit 1c8ad2517a9e125325bbbd494bc60bd342ff6594.

Canonical link: https://commits.webkit.org/274941.20@safari-7619.1.5-branch


  Commit: f2e53be8fbc04195bd832c8dd4bd74aabdefd45b
      https://github.com/WebKit/WebKit/commit/f2e53be8fbc04195bd832c8dd4bd74aabdefd45b
  Author: Russell Epstein <repstein at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Source/WebKit/Configurations/WebKitSwift.xcconfig

  Log Message:
  -----------
  Cherry-pick e710caf302f8. rdar://123397704

    Speculative WebKitSwift install_name fix
    rdar://123397704

    Reviewed by Andy Estes.

    * Source/WebKit/Configurations/WebKitSwift.xcconfig:

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

Canonical link: https://commits.webkit.org/274941.21@safari-7619.1.5-branch


  Commit: 1ff99809d957e4df08a0916cd471d30aa0a4f8c2
      https://github.com/WebKit/WebKit/commit/1ff99809d957e4df08a0916cd471d30aa0a4f8c2
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-619.1.5.3

Canonical link: https://commits.webkit.org/274941.22@safari-7619.1.5-branch


  Commit: e2ef5de1bf0aa724721743cfd537863b7fdbc78e
      https://github.com/WebKit/WebKit/commit/e2ef5de1bf0aa724721743cfd537863b7fdbc78e
  Author: Russell Epstein <repstein at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.4


  Commit: 2b61903d2c3b71df936c898f66168e27996dd5e5
      https://github.com/WebKit/WebKit/commit/2b61903d2c3b71df936c898f66168e27996dd5e5
  Author: Russell Epstein <repstein at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.5

Canonical link: https://commits.webkit.org/274941.24@safari-7619.1.5-branch


  Commit: 6a0660062954f6b7d7bd503f3379ca08fc15eaef
      https://github.com/WebKit/WebKit/commit/6a0660062954f6b7d7bd503f3379ca08fc15eaef
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M Source/WebKit/Configurations/WebKit.xcconfig
    M Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig

  Log Message:
  -----------
  Cherry-pick a0edcb80c674. rdar://123545536

    Fix the internal iOS build when USE(BROWSERENGINEKIT) is set
    https://bugs.webkit.org/show_bug.cgi?id=270033
    rdar://123545536

    Reviewed by Tim Horton.

    Fix the build by removing some xcconfig overrides that are no longer required.

    * Source/WebKit/Configurations/WebKit.xcconfig:
    * Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:

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

Canonical link: https://commits.webkit.org/274941.25@safari-7619.1.5-branch


  Commit: faea49ff599fd1f709728289b76345171bea5bfe
      https://github.com/WebKit/WebKit/commit/faea49ff599fd1f709728289b76345171bea5bfe
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.6

Identifier: 273664.1303 at safari-7619.1.5-branch


  Commit: b36fd0e044efbc40c7310dbb48144c8afc935ace
      https://github.com/WebKit/WebKit/commit/b36fd0e044efbc40c7310dbb48144c8afc935ace
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    A Source/WebCore/platform/audio/SharedAudioDestination.cpp
    A Source/WebCore/platform/audio/SharedAudioDestination.h
    M Source/WebCore/platform/audio/cocoa/AudioDestinationCocoa.cpp
    M Source/WebCore/platform/graphics/MediaSourcePrivate.cpp
    M Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp

  Log Message:
  -----------
  Cherry-pick a78127adb38a. rdar://123634374

    [Cocoa] Audio distortion during media playback when many AudioContexts are created
    https://bugs.webkit.org/show_bug.cgi?id=269833
    rdar://122590884

    Reviewed by Chris Dumez.

    In WebKit, each AudioContext created results in an additional thread serving that context's
    AudioDestination. (In WebKitLegacy, each AudioContext will result in an additional
    AudioOutputUnit running on a single high-priority audio thread.) When many threads
    (or AudioOutputUnits) are created, the overhead alone can cause underruns. And when this
    happens on the high-priority audio thread, it affects all audio playback within that
    process.

    Rather than create new threads or AudioOutputUnits (that are all rendering on the same
    thread to the same buffer in the end) for each AudioContext, a shared AudioDestination
    can be used for multiple AudioContext's with the same number of channels and sample rate.
    For common scenarios, this means only one high-priority audio thread will be created
    and serviced by a single AudioDestination. Specifically for WebKit, it means a single
    RemoteAudioDestination/Proxy pair for each WebContent process.

    * Source/WebCore/platform/audio/SharedAudioDestination.cpp: Added.
    (WebCore::SharedAudioDestinationAdapter::framesPerBuffer const):
    (WebCore::SharedAudioDestinationAdapter::sharedMap):
    (WebCore::SharedAudioDestinationAdapter::ensureAdapter):
    (WebCore::SharedAudioDestinationAdapter::SharedAudioDestinationAdapter):
    (WebCore::m_configurationSemaphore):
    (WebCore::SharedAudioDestinationAdapter::addRenderer):
    (WebCore::SharedAudioDestinationAdapter::removeRenderer):
    (WebCore::SharedAudioDestinationAdapter::configureRenderThread):
    (WebCore::SharedAudioDestinationAdapter::render):
    (WebCore::SharedAudioDestination::create):
    (WebCore::SharedAudioDestination::SharedAudioDestination):
    (WebCore::SharedAudioDestination::~SharedAudioDestination):
    (WebCore::SharedAudioDestination::start):
    (WebCore::SharedAudioDestination::stop):
    (WebCore::SharedAudioDestination::framesPerBuffer const):
    (WebCore::SharedAudioDestination::setIsPlaying):
    * Source/WebCore/platform/audio/SharedAudioDestination.h: Added.
    * Source/WebCore/platform/audio/cocoa/AudioDestinationCocoa.cpp:
    (WebCore::AudioDestination::create):
    * Source/WebKit/WebProcess/GPU/media/WebMediaStrategy.cpp:
    (WebKit::WebMediaStrategy::createAudioDestination):

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

Identifier: 273664.1304 at safari-7619.1.5-branch


  Commit: 6ddb990f5a49f21834821d4f242c935e811f8ef6
      https://github.com/WebKit/WebKit/commit/6ddb990f5a49f21834821d4f242c935e811f8ef6
  Author: Marcus Plutowski <marcus_plutowski at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    A JSTests/wasm/stress/unsigned-integer-division.js
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.h

  Log Message:
  -----------
  Cherry-pick 3ee7e4fc30fd. rdar://120840889

    Emit logical right-shift for unsigned div in BBQ JIT
    https://bugs.webkit.org/show_bug.cgi?id=269729
    rdar://120840889

    Reviewed by Justin Michaud.

    Previously, the function BBQ::emitModOrDiv would unconditionally emit
    an arithmetic right-shift in cases where the lhs was a power of two.
    This produces the correct result when the sign bit is 0 (i.e. the lhs,
    interpreted as a signed 64-bit integer, is positive) but an incorrect
    one when the sign bit is 1: specifically, it would compute a signed
    division instead.
    By checking the sign of the division taking place and emitting a logical
    shift when the operation is unsigned, we get the correct result.

    * JSTests/wasm/stress/i64divu-sign-maintanance.js: Added.
    (async test):
    * Source/JavaScriptCore/wasm/WasmBBQJIT64.h:
    (JSC::Wasm::BBQJITImpl::BBQJIT::emitModOrDiv):

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

Identifier: 273664.1305 at safari-7619.1.5-branch


  Commit: 8ab751ae19c78ec554c1285226752bb57789abfb
      https://github.com/WebKit/WebKit/commit/8ab751ae19c78ec554c1285226752bb57789abfb
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebGPU/WebGPU/RenderPipeline.mm

  Log Message:
  -----------
  Cherry-pick de8e668fedfd. rdar://123269255

    [WebGPU] GPU process crashes when Metal debug validation is enabled and https://webgpu.github.io/webgpu-samples/samples/particles is opened (269756)
    https://bugs.webkit.org/show_bug.cgi?id=269756
    <radar://123269255>

    Reviewed by Dan Glastonbury.

    Array lengths should refrence the webBinding and not the generated metal binding.
    * Source/WebGPU/WebGPU/RenderPipeline.mm:
    (WebGPU::Device::addPipelineLayouts):

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

Identifier: 273664.1306 at safari-7619.1.5-branch


  Commit: e46eb33434f59719d6c068e3aeaa1a5d3047ceaa
      https://github.com/WebKit/WebKit/commit/e46eb33434f59719d6c068e3aeaa1a5d3047ceaa
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M LayoutTests/css3/filters/effect-sepia.html

  Log Message:
  -----------
  Cherry-pick 24319063fa8e. rdar://123320516

    REGRESSION (272891 at main): [ MacOS ] css3/filters/effect-sepia.html is a constant failure
    https://bugs.webkit.org/show_bug.cgi?id=269797
    rdar://123320516

    [Filters] Unreviewed test gardening

    Increase the pixel tolerance of the test.

    * LayoutTests/css3/filters/effect-sepia.html:

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

Identifier: 273664.1307 at safari-7619.1.5-branch


  Commit: 7db34796c33a7c17322b6853750abde4bb10b6d9
      https://github.com/WebKit/WebKit/commit/7db34796c33a7c17322b6853750abde4bb10b6d9
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/WebFrame.cpp

  Log Message:
  -----------
  Cherry-pick 53a866856e70. rdar://123343035

    Remove the owner element null check in WebFrame::parentFrame()
    https://bugs.webkit.org/show_bug.cgi?id=269829
    rdar://123343035

    Reviewed by Alex Christensen.

    I tried to fix a null pointer crash in 274274 at main with Site Isolation enabled but didn’t remove this
    null check. If the parent frame is being hosted in another process the owner element will always be null.

    * Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
    (WebKit::WebFrame::parentFrame const):

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

Identifier: 273664.1308 at safari-7619.1.5-branch


  Commit: e326c7bad07eca90dc911411fbb02ecfb2fa4a56
      https://github.com/WebKit/WebKit/commit/e326c7bad07eca90dc911411fbb02ecfb2fa4a56
  Author: Tim Nguyen <ntim at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M LayoutTests/imported/w3c/resources/import-expectations.json
    A LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation.html
    M Source/WebCore/animation/CSSPropertyAnimation.cpp

  Log Message:
  -----------
  Cherry-pick 71b8fba1401e. rdar://123264559

    REGRESSION(273742 at main): LinkedIn "…" menu does not populate on click
    https://bugs.webkit.org/show_bug.cgi?id=269848
    rdar://123264559

    Reviewed by Cameron McCormack.

    The menu on LinkedIn transitions the `visibility` CSS property.

    Do a partial revert of 273742 at main to revert only the animation wrapper change for the `visibility` property, since it has caused changes that are timing sensitive for the site.

    Imported WPT that also regressed along with 273742 at main to avoid regressing this again.

    * LayoutTests/imported/w3c/resources/import-expectations.json:
    * LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/CSS2/visufx/animation/visibility-interpolation.html: Added.
    * Source/WebCore/animation/CSSPropertyAnimation.cpp:
    (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

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

Identifier: 273664.1309 at safari-7619.1.5-branch


  Commit: 2a57f5993efb864de38e30df13a1f262b862903a
      https://github.com/WebKit/WebKit/commit/2a57f5993efb864de38e30df13a1f262b862903a
  Author: Andres Gonzalez <andresg_22 at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt
    M LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt
    M Source/WebCore/accessibility/AXCoreObject.cpp
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm

  Log Message:
  -----------
  Cherry-pick b73fb5f69228. rdar://123399237

    AX: VoiceOver MacOS does not read the web datetime elements in the same way as other system datetime controls.
    https://bugs.webkit.org/show_bug.cgi?id=269864
    <rdar://problem/123399237>

    Reviewed by Tyler Wilcock.

    VoiceOver expects the following properties to be exposed by datetime elements:
    - AXRole = AXDateTimeArea
    - AXValue = raw date value for the element as an NSDate
    - AXDateTimeComponents = NSUInteger representing the component flags that are valid in the raw date value
    This patch makes these changes.

    * LayoutTests/platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt:
    * LayoutTests/platform/mac-wk2/accessibility/roles-exposed-expected.txt:
    * Source/WebCore/accessibility/AXCoreObject.cpp:
    (WebCore::AXCoreObject::value):
    * Source/WebCore/accessibility/AXCoreObject.h:
    * Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
    (WebCore::AccessibilityNodeObject::dateTimeValue const):
    * Source/WebCore/accessibility/AccessibilityNodeObject.h:
    * Source/WebCore/accessibility/AccessibilityObject.h:
    * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
    (WebCore::AXIsolatedObject::initializeProperties):
    (WebCore::AXIsolatedObject::setProperty):
    * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
    * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
    * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
    (WebCore::AccessibilityObject::dateTimeComponents const):
    (WebCore::Accessibility::createPlatformRoleMap):
    * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
    (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
    * Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
    (WTR::AccessibilityUIElement::stringValue):

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

Identifier: 273664.1310 at safari-7619.1.5-branch


  Commit: 16c5a2b2f1840fa8ae7b367c45c8d8931f7fa3ca
      https://github.com/WebKit/WebKit/commit/16c5a2b2f1840fa8ae7b367c45c8d8931f7fa3ca
  Author: Kiara Rose <kiara_rose at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm

  Log Message:
  -----------
  Cherry-pick b5ff6a931f2d. rdar://123323719

    Crash with Turn Off the Lights extension enabled
    https://bugs.webkit.org/show_bug.cgi?id=269924
    rdar://123323719

    Reviewed by Timothy Hatcher.

    This assertion is being hit:
    *** Assertion failure in -[_UIMenuBuilder _insertMenu:intoParentMenu:newParentMenu:], UIMenuBuilder.m:443

    This is because "duplicate" commands are being inserting into the menu. Per UIKit,
    commands cannot have the same selector if their propertyList is the same. To fix this,
    pass in a propertyList to each command so they can be distinguished from one other.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm:
    (+[_WKWebExtensionKeyCommand commandWithTitle:image:input:modifierFlags:handler:]):

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

Identifier: 273664.1311 at safari-7619.1.5-branch


  Commit: cdc52e7096835a3dcd95dbba41581a182274623d
      https://github.com/WebKit/WebKit/commit/cdc52e7096835a3dcd95dbba41581a182274623d
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebKit/Shared/AuxiliaryProcessExtensions/GPUExtension-Info.plist
    M Source/WebKit/Shared/AuxiliaryProcessExtensions/WebContentExtension-CaptivePortal-Info.plist
    M Source/WebKit/Shared/AuxiliaryProcessExtensions/WebContentExtension-Info.plist

  Log Message:
  -----------
  Cherry-pick 7301277d5018. rdar://123514796

    Update identifier for WebKit process extensions
    https://bugs.webkit.org/show_bug.cgi?id=269936
    rdar://123460280

    Reviewed by Timothy Hatcher and Chris Dumez.

    * Source/WebKit/Shared/AuxiliaryProcessExtensions/GPUExtension-Info.plist:
    * Source/WebKit/Shared/AuxiliaryProcessExtensions/WebContentExtension-CaptivePortal-Info.plist:
    * Source/WebKit/Shared/AuxiliaryProcessExtensions/WebContentExtension-Info.plist:

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

Identifier: 273664.1312 at safari-7619.1.5-branch


  Commit: 6339c0d9dbcad98a6920e1a1e8fca817d9c4ff03
      https://github.com/WebKit/WebKit/commit/6339c0d9dbcad98a6920e1a1e8fca817d9c4ff03
  Author: Karl Dubost <karlcow at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/cache/CachedResourceLoader.cpp
    M Source/WebCore/loader/cache/CachedResourceRequest.cpp
    M Source/WebCore/loader/cache/CachedResourceRequest.h
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h

  Log Message:
  -----------
  Cherry-pick 7c18c3da4148. rdar://123408770

    Adds Quirk so that booking.com sends simple JPEG to WebKit on iOS
    https://bugs.webkit.org/show_bug.cgi?id=269875
    rdar://123408770

    Reviewed by Chris Dumez.

    In webkit.org/b/178758, the support for JPEG2000 was removed from
    WebKit. Booking.com is doing content negociation on both the
    User-Agent string and the HTTP accept header. The website sends
    JPEG2000 assets to Safari on iOS. An outreach effort has been started
    to make sure that booking fixes their servers.
    See https://github.com/webcompat/web-bugs/issues/133697

    No other breakage has been detected yet, but we know that Cloudinary
    is currently JPEG2000 images for some websites on both iOS and macOS.
    It might break once this release of WebKit reaches Safari. An ongoing
    effort has started to avoid this so that Cloudinary can adjust their
    rules and warn their customers.

    In the meantime this Quirk sends a different HTTP Accept header for
    booking.com tricking the server into sending compatible image resources
    for HTML requests instead of JPEG2000.

    * Source/WebCore/loader/FrameLoader.cpp:
    (WebCore::FrameLoader::updateRequestAndAddExtraFields):
    * Source/WebCore/loader/cache/CachedResourceRequest.cpp:
    (WebCore::CachedResourceRequest::acceptHeaderValueFromType):
    (WebCore::CachedResourceRequest::setAcceptHeaderIfNone):
    * Source/WebCore/loader/cache/CachedResourceRequest.h:
    * Source/WebCore/page/Quirks.cpp:
    (WebCore::Quirks::shouldSendLongerAcceptHeaderQuirk):
    * Source/WebCore/page/Quirks.h:

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

Identifier: 273664.1313 at safari-7619.1.5-branch


  Commit: 3ce8b5622496f877fc9048ac30ef88a5841366c8
      https://github.com/WebKit/WebKit/commit/3ce8b5622496f877fc9048ac30ef88a5841366c8
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm

  Log Message:
  -----------
  Cherry-pick 6196748e4b84. rdar://123455683

    Add more fallback logic for the name of a browser action keyboard shortcut
    https://bugs.webkit.org/show_bug.cgi?id=269997
    rdar://123455683

    Reviewed by Timothy Hatcher.

    This change:
    1) Makes it so we don't crash if a command has an empty name or description
    2) Falls back to the display name for _execute_browser_action if no action title is specified

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
    (WebKit::WebExtension::populateCommandsIfNeeded):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCommandCocoa.mm:
    (+[_WKWebExtensionKeyCommand commandWithTitle:image:input:modifierFlags:handler:]):

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

Identifier: 273664.1314 at safari-7619.1.5-branch


  Commit: 1d9e32afa0ad15225057bd962c5a06cb86d580b5
      https://github.com/WebKit/WebKit/commit/1d9e32afa0ad15225057bd962c5a06cb86d580b5
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2024-02-26 (Mon, 26 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
    M Source/WebKit/UIProcess/Cocoa/WKTextExtractionItem.h
    M Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift

  Log Message:
  -----------
  Cherry-pick cb875ef24116. rdar://123542653

    Refactor TextExtraction support in WKWebView to use a promise instead of a Swift block
    https://bugs.webkit.org/show_bug.cgi?id=270031
    rdar://123542653

    Reviewed by Richard Robinson and Abrar Rahman Protyasha.

    Refactor this code to use a dedicated object (`WKTextExtractionRequest`) used to represent an
    asynchronously-fulfilled promise, rather than taking a completion handler directly. As it turns out,
    completion handler blocks in Swift-only API end up getting passed as `nil` into Objective-C methods
    expecting blocks, when using `perform(with:…:)` to invoke ObjC-exposed selectors.

    * Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
    (-[WKWebView _requestTextExtractionForSwift:]):

    Wrap the existing call to request text extraction.

    * Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
    * Source/WebKit/UIProcess/Cocoa/WKTextExtractionItem.h:
    * Source/WebKit/WebKitSwift/TextExtraction/WKTextExtractionItem.swift:
    (WKTextExtractionRequest.completionHandler):
    (WKTextExtractionRequest.fulfill(_:)):

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

Identifier: 273664.1315 at safari-7619.1.5-branch


  Commit: a565b9f334e47df80f72c01701961a38658b621e
      https://github.com/WebKit/WebKit/commit/a565b9f334e47df80f72c01701961a38658b621e
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm

  Log Message:
  -----------
  Cherry-pick 2dfb4e9da6fd. rdar://54613619

    [WK2] WebKit abandons compiled sandbox profiles
    https://bugs.webkit.org/show_bug.cgi?id=212177
    rdar://54613619

    Reviewed by Per Arne Vollan.

    WebKit generates new compiled sandbox profiles whenever sandbox profiles are updated or
    whenever webkit directories change (which is super common for WebKitTestRunner). Previous
    compiled sandbox profiles do not get deleted and therefore may accumulate.

    To address the issue, stop including the sandbox profile hash in the compiled sandbox's
    filename. We end up using:
    - com.apple.WebKit.Networking.Sandbox/CompiledSandbox
    instead of
    - com.apple.WebKit.Networking.Sandbox/CompiledSandbox+D2hn1Pn_lLcl-wJoTYvS45lVG6tqDaa3Lhp_AZPFesI

    This means that every time the sandbox profile gets updated, we'll just overwrite the
    previous version on disk. Therefore, compiled sandbox files will no longer accumulate.

    The one inconvenient I can think of is when running two different versions of Safari
    locally. Both instances will overwrite each other compiled sandbox files, which could
    impact process launch time when alternating between the 2 instances. However, this is
    not a super common use case and the impact is only a minor performance one, no
    correctness issue.

    * Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm:
    (WebKit::sandboxFilePath):
    (WebKit::applySandbox):

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

Canonical link: https://commits.webkit.org/274941.39@safari-7619.1.5-branch


  Commit: 9657dd86c2f485405b65cdf235a0c56d6bc38f85
      https://github.com/WebKit/WebKit/commit/9657dd86c2f485405b65cdf235a0c56d6bc38f85
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/FindController.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm

  Log Message:
  -----------
  Cherry-pick 467125332e14. rdar://123465751

    REGRESSION(274325 at main): Find matches can not be selected after calling `findMatchesForString`
    https://bugs.webkit.org/show_bug.cgi?id=269825
    rdar://123465751

    Reviewed by Aditya Keerthi.

    Before 274325 at main, `FindController::updateFindUIAfterPageScroll` would clear `m_findMatches` only if it
    was called from `FindController::findString`. After 274325 at main, all call sites will clear it, so a
    client will not be able to set selection after calling `findMatchesForString`. To match the previous
    behavior we can check if a frame identifier was passed, since that will only be provided by
    `FindController::findString`.

    * Source/WebKit/WebProcess/WebPage/FindController.cpp:
    (WebKit::FindController::updateFindUIAfterPageScroll):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
    (TEST):

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

Canonical link: https://commits.webkit.org/274941.40@safari-7619.1.5-branch


  Commit: e13cda04e2a875dbe42378dc7662b1a87a750af4
      https://github.com/WebKit/WebKit/commit/e13cda04e2a875dbe42378dc7662b1a87a750af4
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm

  Log Message:
  -----------
  Cherry-pick 36c6dd79307b. rdar://123470286

    Safari is hanging on launch in WebExtension::resourceFileURLForPath.
    https://webkit.org/b/269972
    rdar://123470286

    Reviewed by Brian Weinstein.

    Three things were happening here to cause the hang:

    * The incorrect logic for checking null strings in `clearCustomizations()` was causing the
    notification to fire all the time. When the action cleared, Ghostery would set custom icons
    and an empty badge string again (likely detecting the change in results from browser.action
    APIs.) This would cause rapid cycles of change and reset.

    * The icon paths Ghostery uses start with a `/`. This was causing our `resourceFileURLForPath()`
    function to truncate the file URL back to the root and return nil for the icons path. This caused
    the action icon image to fail to load and show a blank icon.

    * Not all of the action properties were properly tracking changes, always sending the changed
    notification when nothing had changed.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
    (WebKit::WebExtensionAction::clearCustomizations): Correct the null string checks.
    (WebKit::WebExtensionAction::setIconsDictionary): Early return if nothing changed.
    (WebKit::WebExtensionAction::setHasUnreadBadgeText): Ditto.
    (WebKit::WebExtensionAction::incrementBlockedResourceCount): Ditto.
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionCocoa.mm:
    (WebKit::WebExtension::resourceFileURLForPath): Remove prefix if present.

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

Canonical link: https://commits.webkit.org/274941.41@safari-7619.1.5-branch


  Commit: 41464959f8eeaf96d4e6ce9f3f2787988a584f0e
      https://github.com/WebKit/WebKit/commit/41464959f8eeaf96d4e6ce9f3f2787988a584f0e
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WTF/wtf/PlatformHave.h
    M Source/WTF/wtf/spi/cocoa/objcSPI.h
    M Source/WebKit/Shared/Cocoa/WKObject.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm

  Log Message:
  -----------
  Cherry-pick dc20f3f73c6b. rdar://123529626

    _WKWebExtensionMessagePort is being deallocated on a background thread.
    https://webkit.org/b/270012
    rdar://123529626

    Reviewed by Darin Adler.

    Introduce WK_OBJECT_DEALLOC_ON_MAIN_THREAD() and WK_OBJECT_DEALLOC_IMPL_ON_MAIN_THREAD()
    macros that use _class_setCustomDeallocInitiation() to be able to dealloc on the main
    thread for both ARC and non-ARC objects.

    Start using these macros in the Web Extensions classes since they stopped using
    WebCoreObjCScheduleDeallocateOnMainRunLoop(). All objects currently using the WebCore
    dealloc helper can be switched over to use these new macros.

    * Source/WTF/wtf/PlatformHave.h: Added HAVE_OBJC_CUSTOM_DEALLOC.
    * Source/WTF/wtf/spi/cocoa/objcSPI.h: Added _class_setCustomDeallocInitiation and
    _objc_deallocOnMainThreadHelper.
    * Source/WebKit/Shared/Cocoa/WKObject.h: Added WK_OBJECT_DEALLOC_ON_MAIN_THREAD and
    WK_OBJECT_DEALLOC_IMPL_ON_MAIN_THREAD.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtension.mm:
    (-[_WKWebExtension dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm:
    (-[_WKWebExtensionAction dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionCommand.mm:
    (-[_WKWebExtensionCommand dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
    (-[_WKWebExtensionContext initForExtension:]):
    (-[_WKWebExtensionContext dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.mm:
    (-[_WKWebExtensionController dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm:
    (-[_WKWebExtensionControllerConfiguration dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionDataRecord.mm:
    (-[_WKWebExtensionDataRecord dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMatchPattern.mm:
    (-[_WKWebExtensionMatchPattern initWithCoder:]):
    (-[_WKWebExtensionMatchPattern encodeWithCoder:]):
    (-[_WKWebExtensionMatchPattern copyWithZone:]):
    (-[_WKWebExtensionMatchPattern dealloc]): Deleted.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionMessagePort.mm:
    (-[_WKWebExtensionMessagePort dealloc]): Deleted.

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

Canonical link: https://commits.webkit.org/274941.42@safari-7619.1.5-branch


  Commit: 86adec2c06a72db9c1a9aaf23d753f0457b418d9
      https://github.com/WebKit/WebKit/commit/86adec2c06a72db9c1a9aaf23d753f0457b418d9
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    A LayoutTests/fast/dom/datalist-children-changed-crash-expected.txt
    A LayoutTests/fast/dom/datalist-children-changed-crash.html
    M Source/WebCore/dom/ContainerNode.cpp
    M Source/WebCore/html/HTMLDataListElement.cpp

  Log Message:
  -----------
  Cherry-pick 9a1d1c7db218. rdar://123388053

    HTMLDataListElement::childrenChanged doesn't call HTMLElement::childrenChanged
    https://bugs.webkit.org/show_bug.cgi?id=269959
    <rdar://123388053>

    Reviewed by Chris Dumez.

    This can lead to an inconsistent state in DOM so call that.

    * LayoutTests/fast/dom/datalist-children-changed-crash-expected.txt: Added.
    * LayoutTests/fast/dom/datalist-children-changed-crash.html: Added.
    * Source/WebCore/dom/ContainerNode.cpp:
    (WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added a debug
    assertion to catch a similar mistake in the future.
    * Source/WebCore/html/HTMLDataListElement.cpp:
    (WebCore::HTMLDataListElement::childrenChanged):

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

Canonical link: https://commits.webkit.org/274941.43@safari-7619.1.5-branch


  Commit: 4b94ca44854aaf021dc9799ca5be0c9b80156010
      https://github.com/WebKit/WebKit/commit/4b94ca44854aaf021dc9799ca5be0c9b80156010
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebCore/dom/ContainerNode.cpp

  Log Message:
  -----------
  Cherry-pick 5f585dd134e1. rdar://123388053

    HTMLDataListElement::childrenChanged doesn't call HTMLElement::childrenChanged
    https://bugs.webkit.org/show_bug.cgi?id=269959

    Unreviewed ASAN release build fix.

    * Source/WebCore/dom/ContainerNode.cpp:
    (WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):

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

Canonical link: https://commits.webkit.org/274941.44@safari-7619.1.5-branch


  Commit: cfb309db823ad62545b3bfec32c22ed1c136ad57
      https://github.com/WebKit/WebKit/commit/cfb309db823ad62545b3bfec32c22ed1c136ad57
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm

  Log Message:
  -----------
  Cherry-pick c210f6aba610. rdar://123647578

    Tapping locked 1Password icon in password field fails to open popup.
    https://webkit.org/b/270116
    rdar://123647578

    Reviewed by Brian Weinstein.

    1Password calls the browser.openPopup() function when the extension is locked. This is failing
    due to them not telling us what window or tab to use, instead they are relying on us using the
    active window and tab. Currently we use the default action, which has no tab associated and
    this causes Safari to fail to present the popup.

    Always use the tab's action when handling browser.openPopup() with a windowID, or no arguments
    (implying the frontmost window and active tab).

    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIActionCocoa.mm:
    (WebKit::WebExtensionContext::actionOpenPopup): Combine paths, so there is one final call to
    the performAction method which will always have an associated tab.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm:
    (TestWebKitAPI::TEST): Updated expected results for associatedTab.

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

Canonical link: https://commits.webkit.org/274941.45@safari-7619.1.5-branch


  Commit: 4c9ff967e2f6fb9db9c88a0dbe4911ba61e9e242
      https://github.com/WebKit/WebKit/commit/4c9ff967e2f6fb9db9c88a0dbe4911ba61e9e242
  Author: Jay Stfleur <j_stfleur at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M LayoutTests/platform/mac-wk1/TestExpectations

  Log Message:
  -----------
  Cherry-pick 6f87d4cc8cc6. rdar://123657917

    [Gardening]: REGRESSION (275180 at main): [Sonoma wk1] imported/w3c/web-platform-tests/accname/name/comp_host_language_label.html is a constant failure
    https://bugs.webkit.org/show_bug.cgi?id=123657917
    rdar://123657917

    Unreviewed test gardening.

    Adding test expectation

    * LayoutTests/platform/mac-wk1/TestExpectations:

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

Canonical link: https://commits.webkit.org/274941.46@safari-7619.1.5-branch


  Commit: aa2ff449f775e4c815c4142a0eb300756b892e0a
      https://github.com/WebKit/WebKit/commit/aa2ff449f775e4c815c4142a0eb300756b892e0a
  Author: Ben Nham <nham at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

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

  Log Message:
  -----------
  Cherry-pick b6a2c1035c81. rdar://123640341

    Preload restricted window opener data
    https://bugs.webkit.org/show_bug.cgi?id=270106
    rdar://123640341

    Reviewed by Wenson Hsieh.

    The first call to check for the restricted opener type for a domain currently always claims that the
    domain should have an unrestricted opener. This is because we load the list of restricted openers
    from WebPrivacy both lazily and asynchronously.

    To make it much more likely that the first call has up-to-date data, we now load the data in
    `WebProcessPool::didReachGoodTimeToPrewarm`.

    * Source/WebKit/UIProcess/WebProcessPool.cpp:
    (WebKit::loadRestrictedOpenerTypeDataIfNeeded):
    (WebKit::WebProcessPool::didReachGoodTimeToPrewarm):

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

Canonical link: https://commits.webkit.org/274941.47@safari-7619.1.5-branch


  Commit: 12ea0655082391b9f39220a13980e102e8677a1e
      https://github.com/WebKit/WebKit/commit/12ea0655082391b9f39220a13980e102e8677a1e
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm

  Log Message:
  -----------
  Cherry-pick 8a28553ef6fd. rdar://123674682

    Use-after-move in `WebExtensionController::getDataRecord()`
    https://bugs.webkit.org/show_bug.cgi?id=270151
    rdar://123674682

    Reviewed by David Kilzer.

    Fix a use-after-move on the completion handler and use explicit smart pointer types.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
    (WebKit::WebExtensionController::getDataRecord):

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

Canonical link: https://commits.webkit.org/274941.48@safari-7619.1.5-branch


  Commit: 6a3f75f5af95857cee684891d493ed7275351ba7
      https://github.com/WebKit/WebKit/commit/6a3f75f5af95857cee684891d493ed7275351ba7
  Author: Andres Gonzalez <andresg_22 at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt

  Log Message:
  -----------
  Cherry-pick 7a6208ebbec7. rdar://123657917

    REGRESSION (275180 at main): [Sonoma wk1] imported/w3c/web-platform-tests/accname/name/comp_host_language_label.html is a constant failure
    https://bugs.webkit.org/show_bug.cgi?id=270133
    rdar://123657917

    Reviewed by Chris Fleizach.

    Needed to reset the expectation for this test in WK1 since there are test cases that were failing before and now pass.

    * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/accname/name/comp_host_language_label-expected.txt:

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

Canonical link: https://commits.webkit.org/274941.49@safari-7619.1.5-branch


  Commit: dd602f8dc19318888dcc89cbc883ae04052da37a
      https://github.com/WebKit/WebKit/commit/dd602f8dc19318888dcc89cbc883ae04052da37a
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm

  Log Message:
  -----------
  Cherry-pick 6a053cfb431b. rdar://123705222

    Unreviewed, suppress a couple of warnings when compiling against newer SDKs
    rdar://123705222

    Suppress `-Wobjc-method-access` here.

    * Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm:
    (WebCore::AVCaptureDeviceManager::registerForDeviceNotifications):

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

Canonical link: https://commits.webkit.org/274941.50@safari-7619.1.5-branch


  Commit: 0d769f71a2ca6fcefe852e934af89d6d45b9f4ba
      https://github.com/WebKit/WebKit/commit/0d769f71a2ca6fcefe852e934af89d6d45b9f4ba
  Author: Pascoe <pascoe at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm
    M Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Cherry-pick d691e4579511. rdar://123730557

    Password manager UI can cause conditional requests to pause
    https://bugs.webkit.org/show_bug.cgi?id=270135
    rdar://123659147

    Reviewed by Charlie Wolfe and Chris Dumez.

    The API for autofill assisted passkey requests only allows one request ongoing per UI process.
    In order to handle this behavior, we currently pause requests whenever their page is not active
    and resume them whenever the page becomes active.

    However, bringing up password manager UI as part of an conditional mediation may cause the page to
    become not active, therefore pausing the request the user is selecting a credential for in the UI.

    To fix this issue, we don't pause requests whenever a page becomes inactive. Instead we pause the active
    request whenever another page becomes active. This will result in no pause when brining up password manager
    UI.

    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
    (WebKit::WebAuthenticatorCoordinatorProxy::pauseConditionalAssertion):
    (WebKit::WebAuthenticatorCoordinatorProxy::makeActiveConditionalAssertion):
    (WebKit::WebAuthenticatorCoordinatorProxy::performRequest):
    * Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::dispatchActivityStateChange):

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

Canonical link: https://commits.webkit.org/274941.51@safari-7619.1.5-branch


  Commit: e18c89a46caf2ccf79443cefba4f0d7e19df6658
      https://github.com/WebKit/WebKit/commit/e18c89a46caf2ccf79443cefba4f0d7e19df6658
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2024-02-28 (Wed, 28 Feb 2024)

  Changed paths:
    M Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h
    M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp

  Log Message:
  -----------
  Cherry-pick dc7bb79ca72b. rdar://123528095

    Safari unable to play YouTube content fast enough. Content window spins and plays only after 25-30 seconds
    https://bugs.webkit.org/show_bug.cgi?id=270205
    rdar://123528095

    Reviewed by Eric Carlson.

    Both MSE and MediaSourceRemote and RemoteMediaResourceLoader WorkQueue were created using QOS::Background priority.
    Trace shows that when a task is being run on those WorkQueues, they are either being pre-empted or yielded and sometimes
    it takes over 10s for a task to even complete.

    We change the priority to the default, the same as what the IPC's WorkQueue is using.

    * Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:
    * Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
    (WebKit::MediaSourcePrivateRemote::queue):

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

Canonical link: https://commits.webkit.org/274941.52@safari-7619.1.5-branch


  Commit: 75049cd758c86ad425d3e44706b88464031e41ef
      https://github.com/WebKit/WebKit/commit/75049cd758c86ad425d3e44706b88464031e41ef
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/html/HTMLPlugInImageElement.cpp

  Log Message:
  -----------
  Apply patch. rdar://122955331

Canonical link: https://commits.webkit.org/274941.53@safari-7619.1.5-branch


  Commit: 4e7939d026b326ade7623b1973d31a03a84b3af0
      https://github.com/WebKit/WebKit/commit/4e7939d026b326ade7623b1973d31a03a84b3af0
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/rendering/RenderInline.cpp

  Log Message:
  -----------
  Cherry-pick 66b364de9dfc. rdar://122130509

    Inline box may not be present in the enclosing formatting context
    https://bugs.webkit.org/show_bug.cgi?id=268525
    rdar://119921061

    Reviewed by Antti Koivisto.

    Speculative fix when the (potentially damaged) inline box is not present in the enclosing formatting context.
    This may happen when RenderInline::linesBoundingBox is called on a dirty tree after moving an inline box (<span>)
    from a block to an other (but before clearing the tree by running layout).

    * Source/WebCore/rendering/RenderInline.cpp:
    (WebCore::RenderInline::linesBoundingBox const):

    Canonical link: https://commits.webkit.org/272448.456@safari-7618-branch

Canonical link: https://commits.webkit.org/274941.54@safari-7619.1.5-branch


  Commit: 3ba527827e4c9db3e22247cf0be1c56ef2cd9026
      https://github.com/WebKit/WebKit/commit/3ba527827e4c9db3e22247cf0be1c56ef2cd9026
  Author: Alexey Shvayka <ashvayka at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/API/JSScriptRef.cpp
    M Source/JavaScriptCore/builtins/BuiltinExecutables.cpp
    M Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp
    M Source/JavaScriptCore/debugger/DebuggerParseData.cpp
    M Source/JavaScriptCore/parser/Parser.cpp
    M Source/JavaScriptCore/parser/Parser.h
    M Source/JavaScriptCore/runtime/CodeCache.cpp
    M Source/JavaScriptCore/runtime/Completion.cpp
    M Source/JavaScriptCore/runtime/JSModuleLoader.cpp

  Log Message:
  -----------
  Cherry-pick d8aca95c28f6. rdar://123524381

    [JSC] Set correct ConstructorKind when reparsing functions
    https://bugs.webkit.org/show_bug.cgi?id=269869
    <rdar://problem/123401267>

    Reviewed by Justin Michaud.

    Before this change, when reparsing a function, ConstructorKind was always set to None,
    which prevents a parser-level workaround to fix https://webkit.org/b/268411.
    Also, ConstructorKind was abused to allow super() in eval(): please see Parser constructor.

    However, passing down ConstructorKind to parser isn't trivial as it would conflict with
    `defaultConstructorKindForTopLevelFunction` that is needed only for bytecode validation.

    To avoid using one parameter for two purposes, this patch extracts parseRootNode(), which has
    parameters special for debugger / bytecode validation while lacking ones needed only for functions.
    overrideConstructorKindForTopLevelFunctionExpressions() is introduced for the same purpose.

    Also, this change:
      * passes correct DerivedContextType for eval() and reimplements SyntaxError check for super(),
        all to avoid setting ConstructorKind for non-functions;
      * hoists ConstructorKind override for bytecode validation up to parseFunctionExpression() to
        limit the surface of this bytecode validation only hack;
      * removes unused ParsingContext::Eval.

    No new tests, no behavior change.

    * Source/JavaScriptCore/API/JSScriptRef.cpp:
    (parseScript):
    * Source/JavaScriptCore/builtins/BuiltinExecutables.cpp:
    (JSC::BuiltinExecutables::createExecutable):
    * Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp:
    (JSC::generateUnlinkedFunctionCodeBlock):
    * Source/JavaScriptCore/debugger/DebuggerParseData.cpp:
    (JSC::gatherDebuggerParseData):
    * Source/JavaScriptCore/parser/Parser.cpp:
    (JSC::Parser<LexerType>::Parser):
    (JSC::Parser<LexerType>::parseFunctionInfo):
    (JSC::Parser<LexerType>::parseFunctionExpression):
    (JSC::Parser<LexerType>::parseMemberExpression):
    * Source/JavaScriptCore/parser/Parser.h:
    (JSC::Scope::setDerivedContextType):
    (JSC::Scope::derivedContextType const):
    (JSC::Parser::overrideConstructorKindForTopLevelFunctionExpressions):
    (JSC::parse):
    (JSC::parseRootNode):
    * Source/JavaScriptCore/runtime/CodeCache.cpp:
    (JSC::generateUnlinkedCodeBlockImpl):
    * Source/JavaScriptCore/runtime/Completion.cpp:
    (JSC::checkSyntaxInternal):
    (JSC::checkModuleSyntax):
    * Source/JavaScriptCore/runtime/JSModuleLoader.cpp:
    (JSC::JSC_DEFINE_HOST_FUNCTION):

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

Canonical link: https://commits.webkit.org/274941.55@safari-7619.1.5-branch


  Commit: 15db315b3cecdbd82feb5a5fe4766b1cd2c1f35e
      https://github.com/WebKit/WebKit/commit/15db315b3cecdbd82feb5a5fe4766b1cd2c1f35e
  Author: Nicole Rosario <nicole_rosario at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    A LayoutTests/ipc/send-ignored-network-message-expected.txt
    A LayoutTests/ipc/send-ignored-network-message.html
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp

  Log Message:
  -----------
  Cherry-pick eaa2c46c3922. rdar://123087621

    ASSERT_WITH_SECURITY_IMPLICATION reached on Messages::NetworkProcess in NetworkConnectionToWebProcess::didReceiveMessage()
    https://bugs.webkit.org/show_bug.cgi?id=270006
    rdar://123087621

    Reviewed by Alex Christensen and Chris Dumez.

    Replace assertions checking that `decoder.messageReceiverName() !=
    Messages::NetworkProcess::messageReceiverName()` with MESSAGE_CHECK.
    Network messages from the web content process are safely ignored
    elsewhere already so the assert is not needed

    * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
    (WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
    (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):

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

Canonical link: https://commits.webkit.org/274941.56@safari-7619.1.5-branch


  Commit: aad6fc681b998aad146b3a71d858fc28fcec20de
      https://github.com/WebKit/WebKit/commit/aad6fc681b998aad146b3a71d858fc28fcec20de
  Author: Pascoe <pascoe at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

  Log Message:
  -----------
  Cherry-pick be2916dac989. rdar://123357813

    [WebAuthn] Overrelease in error for multi-origin credentials
    rdar://123357813
    https://bugs.webkit.org/show_bug.cgi?id=269942

    Reviewed by Chris Dumez.

    There's evidence for crashes being caused by the over-release of the dictionary inside
    userInfo[NSUnderlyingErrorKey] for the error returned for multi-origin credentials. This
    patch is to use RetainPtr in WebKit for this dictionary. I have not been able to reproduce
    the crash, so this is speculative.

    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
    (WebKit::WebAuthenticatorCoordinatorProxy::performRequest):

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

Canonical link: https://commits.webkit.org/274941.57@safari-7619.1.5-branch


  Commit: a78c4a3b5763181a6eee94603b7b34ae2faad06e
      https://github.com/WebKit/WebKit/commit/a78c4a3b5763181a6eee94603b7b34ae2faad06e
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebGPU/WebGPU/Device.mm

  Log Message:
  -----------
  Cherry-pick 1004779ce3c4. rdar://123745437

    [WebGPU] WebGPU::setUncapturedScopeCallback may crash if repeatedly invoked
    https://bugs.webkit.org/show_bug.cgi?id=270244
    <radar://123745437>

    Reviewed by Dan Glastonbury.

    We can only call this once, so null-out the callback
    after it has been called.

    * Source/WebGPU/WebGPU/Device.mm:
    (WebGPU::Device::generateAValidationError):

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

Canonical link: https://commits.webkit.org/274941.58@safari-7619.1.5-branch


  Commit: bd4729fefc78a23414b83c54b77fc8216bded0b5
      https://github.com/WebKit/WebKit/commit/bd4729fefc78a23414b83c54b77fc8216bded0b5
  Author: Gerald Squelart <g_squelart at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/html/shadow/attachmentElementShadow.css

  Log Message:
  -----------
  Cherry-pick 402445a10ad8. rdar://123670303

    Attachment: Add missing border-radius to the transparent-color div
    https://bugs.webkit.org/show_bug.cgi?id=270254
    rdar://123670303

    Reviewed by Tim Nguyen.

    Without this border-radius, the div extends to the full rectangle, so its
    transparent color may be visible against some email background colors.

    Note: I don't want to clip from the top element, in case some other/future
    issue could one day clip important information (mainly the title).

    * Source/WebCore/html/shadow/attachmentElementShadow.css:
    (div#attachment-background):

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

Canonical link: https://commits.webkit.org/274941.59@safari-7619.1.5-branch


  Commit: f70613bac0c77d30768f68d477c235029c07f680
      https://github.com/WebKit/WebKit/commit/f70613bac0c77d30768f68d477c235029c07f680
  Author: Ben Nham <nham at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

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

  Log Message:
  -----------
  Cherry-pick 94b54aa0adda. rdar://123788018

    Avoid taking near suspended assertion in processes with no pages
    https://bugs.webkit.org/show_bug.cgi?id=270252
    rdar://123788018

    Reviewed by Chris Dumez.

    In 272937 at main, we stopped taking the near suspended assertion by default in most cases. However, I
    forgot to change WebProcessProxy::shouldTakeNearSuspendedAssertion() to consult that default value
    in the no page case. This fixes that issue.

    * Source/WebKit/UIProcess/WebProcessProxy.cpp:
    (WebKit::WebProcessProxy::shouldTakeNearSuspendedAssertion const):

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

Canonical link: https://commits.webkit.org/274941.60@safari-7619.1.5-branch


  Commit: 27a97f05be694a9349c17caf7ad550224015fa33
      https://github.com/WebKit/WebKit/commit/27a97f05be694a9349c17caf7ad550224015fa33
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cocoa/MetalSPI.h
    M Source/WebKit/GPUProcess/GPUProcessCreationParameters.h
    M Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in
    M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp

  Log Message:
  -----------
  Cherry-pick dbe12dc3a338. rdar://123609465

    Override Metal cache path
    https://bugs.webkit.org/show_bug.cgi?id=270269
    rdar://123609465

    Reviewed by Brent Fulgham and Chris Dumez.

    Override Metal cache path to match the path of the sandbox extension. This is only
    required when WebKit processes are launched as extensions, since they will have their
    own container then where Metal will try to write cache files. The path of the sandbox
    extension is in the UI process' container, so overriding the Metal cache path is
    needed for them to match.

    * Source/WebCore/PAL/pal/spi/cocoa/MetalSPI.h:
    * Source/WebKit/GPUProcess/GPUProcessCreationParameters.h:
    * Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in:
    * Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm:
    (WebKit::GPUProcess::platformInitializeGPUProcess):
    * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
    (WebKit::GPUProcessProxy::GPUProcessProxy):

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

Canonical link: https://commits.webkit.org/274941.61@safari-7619.1.5-branch


  Commit: b9662d1b8ef19dbfa5f5677447d26379193ab2fa
      https://github.com/WebKit/WebKit/commit/b9662d1b8ef19dbfa5f5677447d26379193ab2fa
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebKit/Scripts/process-entitlements.sh

  Log Message:
  -----------
  Cherry-pick 40b5c0b0cc26. rdar://123475125

    The WebContent process should decode audio in-process
    https://bugs.webkit.org/show_bug.cgi?id=270322
    rdar://123475125

    Reviewed by Chris Dumez.

    Add an entitlement to enable this behavior.

    * Source/WebKit/Scripts/process-entitlements.sh:

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

Canonical link: https://commits.webkit.org/274941.62@safari-7619.1.5-branch


  Commit: ffebbc3c62ea753c4979000b40e029b88f22c9ed
      https://github.com/WebKit/WebKit/commit/ffebbc3c62ea753c4979000b40e029b88f22c9ed
  Author: Ben Nham <nham at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
    M Source/WebKit/UIProcess/Cocoa/NavigationState.mm

  Log Message:
  -----------
  Cherry-pick 35745daf8d35. rdar://123858678

    Remove unnecessary copy when checking if a page is running an extension
    https://bugs.webkit.org/show_bug.cgi?id=270321
    rdar://problem/123858678

    Reviewed by Timothy Hatcher.

    For every navigation decision, we check whether the associated page is running a web extension by
    calling `page.cocoaView().get().configuration._requiredWebExtensionBaseURL`. Since configuration is
    marked as a `copy` property, this causes an allocation and copy every time it's called. We should
    avoid the copy since it's not useful.

    I have another use case for `_requiredWebExtensionBaseURL` outside of WebKit, so I put it in
    WKWebViewPrivate.h rather than WKWebViewInternal.h.

    * Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
    (-[WKWebView _requiredWebExtensionBaseURL]):
    * Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
    * Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
    (WebKit::isUnsupportedWebExtensionNavigation):

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

Canonical link: https://commits.webkit.org/274941.63@safari-7619.1.5-branch


  Commit: 1ceb04cb0a3d3d2bcd13393e29104077708ed338
      https://github.com/WebKit/WebKit/commit/1ceb04cb0a3d3d2bcd13393e29104077708ed338
  Author: Félix Cloutier <fcloutier at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  Cherry-pick 6ce61264b7ca. rdar://123848733

    [Lockdown Mode] Lockdown Mode Safe Font feature flag gets stuck, cannot be enabled in some cases

    https://bugs.webkit.org/show_bug.cgi?id=270307
    rdar://123848733

    Reviewed by Brent Fulgham.

    Due to a logic error, when the Lockdown Mode Safe Font feature flag goes to
    `DownloadableBinaryFontTrustedTypes::Restricted` or `...::FallbackParser`, it
    gets stuck in that state and can't progress to the other. This makes the
    "Lockdown Mode Safe Font" setting toggle ineffective.

    This change addresses the issue by allowing state transitions from any
    `DownloadableBinaryFontTrustedTypes` state except `...::None`.

    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::adjustSettingsForLockdownMode):

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

Canonical link: https://commits.webkit.org/274941.64@safari-7619.1.5-branch


  Commit: c82e7cbb3037ac5f77a07f129f3f45233dcc0518
      https://github.com/WebKit/WebKit/commit/c82e7cbb3037ac5f77a07f129f3f45233dcc0518
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/html/MediaElementSession.cpp
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h

  Log Message:
  -----------
  Cherry-pick 568a30c64835. rdar://123721211

    [iOS] premierleague.com enters video fullscreen from element fullscreen on iPhone
    https://bugs.webkit.org/show_bug.cgi?id=270329
    rdar://123721211

    Reviewed by Eric Carlson.

    premierleague.com does not include a `playsinline` attribute on their video elements,
    which causes them to attempt to enter video fullscreen when playing, even in element
    fullscreen. Exempt premierleague.com from the `playsinline` attribute (and consider
    removing that requirement on iPhone generally).

    * Source/WebCore/html/MediaElementSession.cpp:
    (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):
    * Source/WebCore/page/Quirks.cpp:
    (WebCore::Quirks::shouldIgnorePlaysInlineRequirementQuirk const):
    * Source/WebCore/page/Quirks.h:

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

Canonical link: https://commits.webkit.org/274941.65@safari-7619.1.5-branch


  Commit: bad6cea5a88698025da04baa917423ba7eda9874
      https://github.com/WebKit/WebKit/commit/bad6cea5a88698025da04baa917423ba7eda9874
  Author: Dana Estra <destra at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/page/Quirks.cpp

  Log Message:
  -----------
  Cherry-pick 9ab0a13e324b. rdar://123722375

    Disable element fullscreen on digitaltrends.com on iPhone
    https://bugs.webkit.org/show_bug.cgi?id=270359
    rdar://123722375

    Reviewed by Jer Noble.

    Adding quirk to digitaltrends.com to disable element fullscreen on iPhone,
    until the website fixes its custom media controls which are currently
    cut off on the bottom when the phone is rotated into landscape mode.

    * Source/WebCore/page/Quirks.cpp:
    (WebCore::Quirks::shouldDisableElementFullscreenQuirk const):

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

Canonical link: https://commits.webkit.org/274941.66@safari-7619.1.5-branch


  Commit: b375f4f31732c4a4b0975f885459a1f23cc192af
      https://github.com/WebKit/WebKit/commit/b375f4f31732c4a4b0975f885459a1f23cc192af
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/jit/JIT.cpp
    M Source/JavaScriptCore/jit/JIT.h
    M Source/JavaScriptCore/jit/JITInlines.h
    M Source/JavaScriptCore/jit/JITOpcodes.cpp
    M Source/JavaScriptCore/jit/JITOperations.cpp
    M Source/JavaScriptCore/jit/JITOperations.h
    M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
    M Source/JavaScriptCore/llint/LLIntSlowPaths.h
    M Source/JavaScriptCore/llint/LowLevelInterpreter.asm
    M Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
    M Source/JavaScriptCore/runtime/CommonSlowPaths.h

  Log Message:
  -----------
  Cherry-pick 0291f234c90d. rdar://123909602

    [JSC] Remove some hot CommonSlowPaths
    https://bugs.webkit.org/show_bug.cgi?id=270363
    rdar://123909602

    Reviewed by Alexey Shvayka.

    CommonSlowPaths is always slower than normal operations in Baseline JIT since CommonSlowPaths accesses a lot of data like bytecode etc.
    This is OK for rare operations, but not OK for hot operations. This patch made following opcodes using operations. They are picked based
    on trace data.

        1. op_create_lexical_environment
        2. op_create_direct_arguments
        3. op_create_scoped_arguments
        4. op_create_cloned_arguments

    And move CommonSlowPaths for them to LLIntSlowPaths. Since LLInt needs to access to these bytecode etc. to retrieve information (JIT can skip it),
    SlowPath performance is the same to operations.

    * Source/JavaScriptCore/jit/JIT.cpp:
    (JSC::JIT::privateCompileMainPass):
    * Source/JavaScriptCore/jit/JIT.h:
    * Source/JavaScriptCore/jit/JITOpcodes.cpp:
    (JSC::JIT::emit_op_create_lexical_environment):
    (JSC::JIT::emit_op_create_direct_arguments):
    (JSC::JIT::emit_op_create_scoped_arguments):
    (JSC::JIT::emit_op_create_cloned_arguments):
    * Source/JavaScriptCore/jit/JITOperations.cpp:
    (JSC::JSC_DEFINE_JIT_OPERATION):
    * Source/JavaScriptCore/jit/JITOperations.h:
    * Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
    (JSC::LLInt::LLINT_SLOW_PATH_DECL):
    * Source/JavaScriptCore/llint/LLIntSlowPaths.h:
    * Source/JavaScriptCore/llint/LowLevelInterpreter.asm:
    * Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:
    * Source/JavaScriptCore/runtime/CommonSlowPaths.h:

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

Canonical link: https://commits.webkit.org/274941.67@safari-7619.1.5-branch


  Commit: 84a77de5d9fb22344f4328c5696a5a56f21cf81c
      https://github.com/WebKit/WebKit/commit/84a77de5d9fb22344f4328c5696a5a56f21cf81c
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  -----------
  Cherry-pick 228eebbe8b43. rdar://123748756

    Address thread safety issue in log forwarding
    https://bugs.webkit.org/show_bug.cgi?id=270366
    rdar://123748756

    Reviewed by Chris Dumez.

    Use dispatch_once to synchronize access to the log worker queue from multiple threads.

    * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
    (WebKit::logQueue):
    (WebKit::registerLogHook):

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

Canonical link: https://commits.webkit.org/274941.68@safari-7619.1.5-branch


  Commit: c76a84e98e78588dca43eacdc3e3d9dbf78691d9
      https://github.com/WebKit/WebKit/commit/c76a84e98e78588dca43eacdc3e3d9dbf78691d9
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    A LayoutTests/fast/images/create-image-bitmap-after-stopping-script-execution-context-expected.txt
    A LayoutTests/fast/images/create-image-bitmap-after-stopping-script-execution-context.html
    M Source/WebCore/html/ImageBitmap.cpp

  Log Message:
  -----------
  Cherry-pick 198cfb4f193c. rdar://123424399

    Assertion failure in ~CompletionHandler() via ImageBitmap::createCompletionHandler
    https://bugs.webkit.org/show_bug.cgi?id=270379

    Reviewed by Wenson Hsieh.

    Call the completion handler when exiting early in PendingImageBitmap::fetch.

    * LayoutTests/fast/images/create-image-bitmap-after-stopping-script-execution-context-expected.txt: Added.
    * LayoutTests/fast/images/create-image-bitmap-after-stopping-script-execution-context.html: Added.
    * Source/WebCore/html/ImageBitmap.cpp:

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

Canonical link: https://commits.webkit.org/274941.69@safari-7619.1.5-branch


  Commit: f1382bae2f8ec2dbc11f6ecbe47614d4a53226e8
      https://github.com/WebKit/WebKit/commit/f1382bae2f8ec2dbc11f6ecbe47614d4a53226e8
  Author: Justin Michaud <justin_michaud at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmCallsiteCollection.cpp

  Log Message:
  -----------
  Cherry-pick a9c33a2b496a. rdar://123015079

    Wasm Callee should remain set even after tier-up
    https://bugs.webkit.org/show_bug.cgi?id=268990
    rdar://123015079

    Reviewed by Alexey Shvayka.

    We may still need to call into the LLInt after tier-up, so we shouldn't clear
    callee.

    * Source/JavaScriptCore/wasm/WasmCallsiteCollection.cpp:
    (JSC::Wasm::CallsiteCollection::updateCallsitesToCallUs):

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

Canonical link: https://commits.webkit.org/274941.70@safari-7619.1.5-branch


  Commit: ebbce3cf380f93065ed4df6c7997b3a692fe7123
      https://github.com/WebKit/WebKit/commit/ebbce3cf380f93065ed4df6c7997b3a692fe7123
  Author: Dan Robson <dtr_bugzilla at apple.com>
  Date:   2024-03-03 (Sun, 03 Mar 2024)

  Changed paths:
    M Source/WebCore/rendering/RenderInline.cpp

  Log Message:
  -----------
  Revert "Cherry-pick 66b364de9dfc. rdar://122130509"

This reverts commit 4e7939d026b326ade7623b1973d31a03a84b3af0.

Canonical link: https://commits.webkit.org/274941.71@safari-7619.1.5-branch


  Commit: 91590fedd565e6da250d970eb564a3002375f791
      https://github.com/WebKit/WebKit/commit/91590fedd565e6da250d970eb564a3002375f791
  Author: ndres Gonzalez <andresg_22 at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  -----------
  Cherry-pick aef2df021f71. rdar://123466894

    AX: Assert crash in AXIsolatedObject::relativeFrame.
    https://bugs.webkit.org/show_bug.cgi?id=269941
    <rdar://problem/123466894>

    Reviewed by Chris Fleizach.

    AXIsolatedObject::relativeFrame should not call isMOckObject() because this method always return false and asserts in debug builds.

    * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
    (WebCore::AXIsolatedObject::relativeFrame const):

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


  Commit: 6dedc425f9f97b934576a065a5e8b5f50503c4f2
      https://github.com/WebKit/WebKit/commit/6dedc425f9f97b934576a065a5e8b5f50503c4f2
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h
    M Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.serialization.in
    M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h
    M Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm
    M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm
    M Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm

  Log Message:
  -----------
  Cherry-pick 7c0a7f074ef2. rdar://123338506

    EmberJS Web Extension fails to detect Ember application.
    https://webkit.org/b/269816
    rdar://problem/123338506

    Reviewed by Brian Weinstein.

    DevTools extensions need to use a custom content world type, that is similar to
    Main but distinct since it has less APIs. Previously we were just using the
    ContentScript world type to limit the APIs. This prevented message passing
    from being delivered properly to the Inspector pages.

    We also need the pass the Inspector page, tab, and window identifiers to the
    web process so browser.devtools.inspectedWindow.tabId returns the correct value.

    * Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.h:
    (WebKit::toDebugString):
    * Source/WebKit/Shared/Extensions/WebExtensionContentWorldType.serialization.in:
    * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.h:
    * Source/WebKit/Shared/Extensions/WebExtensionContextParameters.serialization.in:
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm:
    (WebKit::WebExtensionContext::portPostMessage):
    (WebKit::WebExtensionContext::firePortDisconnectEventIfNeeded):
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionContext::runtimeSendMessage):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::inspectorPageIdentifiers const):
    (WebKit::WebExtensionContext::wakeUpBackgroundContentIfNecessaryToFireEvents):
    (WebKit::WebExtensionContext::loadInspectorBackgroundPage):
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
    (WebKit::WebExtensionContext::parameters const):
    (WebKit::WebExtensionContext::pageListensForEvent const):
    (WebKit::WebExtensionContext::processes const):
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
    (WebKit::WebExtensionContext::processes const):
    (WebKit::WebExtensionContext::sendToProcessesForEvents const):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionContextProxy::dispatchRuntimeMessageEvent):
    (WebKit::WebExtensionContextProxy::dispatchRuntimeConnectEvent):
    * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionContextProxyCocoa.mm:
    (WebKit::WebExtensionContextProxy::toDOMWrapperWorld):
    * Source/WebKit/WebProcess/Extensions/Cocoa/WebExtensionControllerProxyCocoa.mm:
    (WebKit::WebExtensionControllerProxy::globalObjectIsAvailableForFrame):
    * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp:
    (WebKit::WebExtensionContextProxy::tabIdentifier const):
    (WebKit::WebExtensionContextProxy::addInspectorPage):
    (WebKit::WebExtensionContextProxy::addInspectorPageIdentifier):
    * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
    * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIDevTools.mm:
    (TEST(WKWebExtensionAPIDevTools, MessagePassingToBackground)): Added.
    (TEST(WKWebExtensionAPIDevTools, MessagePassingFromPanelToBackground)): Added.
    (TEST(WKWebExtensionAPIDevTools, MessagePassingFromPanelToDevToolsBackground)): Added.
    (TEST(WKWebExtensionAPIDevTools, PortMessagePassingToBackground)): Added.
    (TEST(WKWebExtensionAPIDevTools, PortMessagePassingFromPanelToBackground)): Added.
    (TEST(WKWebExtensionAPIDevTools, PortMessagePassingFromPanelToDevToolsBackground)): Added.

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


  Commit: 75d163749944beae79c3dfa0629c40ec235e2312
      https://github.com/WebKit/WebKit/commit/75d163749944beae79c3dfa0629c40ec235e2312
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebKit/Platform/spi/ios/UIKitSPI.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionAction.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm

  Log Message:
  -----------
  Cherry-pick eb5c280e0463. rdar://121461105

    Add UIViewController to _WKWebExtensionAction.
    https://webkit.org/b/270099
    rdar://121461105

    Reviewed by Brian Weinstein.

    The logic for popups is complex on iOS, we should vend a UIViewController instead of just the WKWebView.
    This also overrides the viewport to accommodate desktop extenions better on mobile.

    * Source/WebKit/Platform/spi/ios/UIKitSPI.h:
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.h:
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionAction.mm:
    (-[_WKWebExtensionAction popupViewController]):
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
    (-[_WKWebExtensionActionWebViewDelegate initWithWebExtensionAction:]):
    (-[_WKWebExtensionActionWebViewDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
    (-[_WKWebExtensionActionWebView initWithFrame:configuration:webExtensionAction:]):
    (-[_WKWebExtensionActionWebView dealloc]):
    (-[_WKWebExtensionActionWebView invalidateIntrinsicContentSize]):
    (-[_WKWebExtensionActionWebView observeValueForKeyPath:ofObject:change:context:]):
    (-[_WKWebExtensionActionWebView _contentSize]):
    (-[_WKWebExtensionActionWebView _contentSizeDidChange]):
    (-[_WKWebExtensionActionWebView _checkIfContentSizeStabilizedAndPresentPopup]):
    (-[_WKWebExtensionActionViewController initWithWebExtensionAction:]):
    (-[_WKWebExtensionActionViewController viewIsAppearing:]):
    (-[_WKWebExtensionActionViewController adaptivePresentationStyleForPresentationController:traitCollection:]):
    (-[_WKWebExtensionActionViewController presentationController:prepareAdaptivePresentationController:]):
    (-[_WKWebExtensionActionViewController presentationController:viewControllerForAdaptivePresentationStyle:]):
    (-[_WKWebExtensionActionViewController _viewControllerDismissalTransitionDidEnd:]):
    (-[_WKWebExtensionActionViewController _updatePopoverContentSize]):
    (-[_WKWebExtensionActionViewController _updateDetentForSheetPresentationController:]):
    (-[_WKWebExtensionActionViewController _dismissPopup]):
    (WebKit::WebExtensionAction::popupViewController):
    (WebKit::WebExtensionAction::popupWebView):
    (WebKit::WebExtensionAction::readyToPresentPopup):
    (WebKit::WebExtensionAction::popupSizeDidChange):
    (WebKit::WebExtensionAction::popupDidClose):
    (WebKit::WebExtensionAction::closePopupWebView):
    * Source/WebKit/UIProcess/Extensions/WebExtensionAction.h:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIAction.mm:
    (TestWebKitAPI::TEST): Check that popupViewController is non-null.

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


  Commit: 040e3597d0b78c737b9ebeb73894a8d9b08e9e6f
      https://github.com/WebKit/WebKit/commit/040e3597d0b78c737b9ebeb73894a8d9b08e9e6f
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm

  Log Message:
  -----------
  Cherry-pick eeef2a286027. rdar://123468009

    Close extension popup web views when the web content process terminates or window.close is called
    https://bugs.webkit.org/show_bug.cgi?id=270130
    rdar://123468009

    Reviewed by Timothy Hatcher.

    On iOS, this will lead to the UIViewController being closed, which leads to a better experience for the client.

    On Mac, if the web view lives in an NSPanel, WebKit will close the window that the web view is in.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionActionCocoa.mm:
    (-[_WKWebExtensionActionWebViewDelegate webViewWebContentProcessDidTerminate:]):
    (-[_WKWebExtensionActionWebViewDelegate webViewDidClose:]):

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


  Commit: c4e69a38a8b77009876a1857a5621d6bb0ad02c4
      https://github.com/WebKit/WebKit/commit/c4e69a38a8b77009876a1857a5621d6bb0ad02c4
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm

  Log Message:
  -----------
  Cherry-pick 53b1e6b7f02b. rdar://123423266

    1Password fails to load popup after focusing a form field on a page.
    https://webkit.org/b/270233
    rdar://123423266

    Reviewed by Jeff Miller and Brian Weinstein.

    Once the input field is focused, 1Password creates an iframe with an extension document in the
    tab. This causes two processes to have listeners for the runtime.onMessage event. That then
    causes a race when sending messages, and the tab frame wins since the background replies async
    after doing some work.

    This was happening because the reply aggregator in the web process was sending a default null
    reply, since the completion handler is always called, which was indistinguishable from a real
    reply. Now we always send either null for default or at minimum an empty string for the JSON
    reply, and the UI process skips the replies that are null strings. The aggregator on the UI
    process side will then get the real reply or default to null later once it goes out of scope.

    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionContext::runtimeSendMessage): Don't call callbackAggregator for null string.
    (WebKit::WebExtensionContext::runtimeWebPageSendMessage): Ditto.
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionContextProxy::internalDispatchRuntimeMessageEvent): Ensure a real reply is
    never null, so the completionHandler can make the distinction. Send default replies as null.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm:
    (TEST(WKWebExtensionAPIRuntime, SendMessageWithTabFrameAndAsyncReply)): Added.
    (TEST(WKWebExtensionAPIRuntime, SendMessageFromWebPageWithTabFrameAndAsyncReply)): Added.

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


  Commit: 76aceba96c86f082e872786bf567f354118e0b8b
      https://github.com/WebKit/WebKit/commit/76aceba96c86f082e872786bf567f354118e0b8b
  Author: ndy Estes <aestes at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebKit/Platform/cocoa/MediaCapability.h
    M Source/WebKit/Platform/cocoa/MediaCapability.mm
    M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h

  Log Message:
  -----------
  Cherry-pick d97f5a09e4f1. rdar://123515296

    getUserMedia camera stream lost on history pushState in iOS 17.4 Beta 4
    https://bugs.webkit.org/show_bug.cgi?id=269846
    rdar://123381737

    Reviewed by Eric Carlson and Youenn Fablet.

    When WebKit adopted media capability grants for camera capture we chose to tie the lifetime of the
    media environment to the top frame document's current URL, such that if the URL changes (ignoring
    fragment identifiers) then the current media environment is destroyed and a new one is created. If
    a capture session is active when the media environment changes then the system will pause the
    capture session as it's no longer associated with the current media environment. The logic of
    comparing URLs was meant as a proxy for detecting cross-document navigations but failed to account
    for same-document navigations that changed the path of the current URL (e.g., via pushState). Since
    the origin associated with the media environment does not change during a same-document navigation
    there is no need to recreate the media environment.

    Addressed this by moving the logic for creating and destroying media environments to
    WebPageProxy::didChangeMainDocument. Further, since only the top document's origin is displayed to
    the user in iOS's privacy accounting UI, changed MediaCapability to only track a SecurityOrigin.
    The logic for when to activate and deactivate a media environment's capability remains unchanged.

    Manually verified that this resolves the issue reported in bug #269846. Unfortunately no new tests
    are possible since the underlying platform support for media capabilities is not available in
    iOS Simulator.

    * Source/WebKit/Platform/cocoa/MediaCapability.h:
    * Source/WebKit/Platform/cocoa/MediaCapability.mm:
    (WebKit::MediaCapability::MediaCapability):
    (WebKit::m_mediaEnvironment):
    (WebKit::MediaCapability::registrableDomain const): Deleted.
    * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
    (WebKit::WebPageProxy::setMediaCapability):
    (WebKit::WebPageProxy::deactivateMediaCapability):
    (WebKit::WebPageProxy::resetMediaCapability):
    (WebKit::WebPageProxy::updateMediaCapability):
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::didCommitLoadForFrame):
    (WebKit::WebPageProxy::didChangeMainDocument):
    * Source/WebKit/UIProcess/WebPageProxy.h:
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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


  Commit: 400bb0e02ba85b0a1f61b191085a748aa0b686da
      https://github.com/WebKit/WebKit/commit/400bb0e02ba85b0a1f61b191085a748aa0b686da
  Author: ndy Estes <aestes at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebKit/Platform/cocoa/MediaCapability.h
    M Source/WebKit/Platform/cocoa/MediaCapability.mm
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Cherry-pick 144facca6435. rdar://123881170

    REGRESSION (275244 at main): Crash in MediaCapability::MediaCapability when loading 'about:blank'
    https://bugs.webkit.org/show_bug.cgi?id=270318
    rdar://123856265

    Reviewed by Jer Noble.

    In 275244 at main MediaCapability was changed to track a SecurityOrigin rather than a URL. Since
    'about:blank' is considered an opaque origin, a nil NSURL is returned by SecurityOrigin::toURL()
    (after implicit conversion). A crash occurs when MediaCapability attempts to instantiate a
    BEMediaEnvironment with the nil URL since -initWithWebPageURL: requires a nonnull NSURL.

    Fixed this by reverting MediaCapability to storing the webpage URL as a WebCore::URL, and instead
    using URL::protocolHostAndPort() and protocolHostAndPortAreEqual() to ensure that the
    MediaEnvironment is not reset during same-origin navigations.

    * Source/WebKit/Platform/cocoa/MediaCapability.h:
    * Source/WebKit/Platform/cocoa/MediaCapability.mm:
    (WebKit::createMediaEnvironment):
    (WebKit::MediaCapability::MediaCapability):
    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
    (WebKit::WebPageProxy::setMediaCapability):
    (WebKit::WebPageProxy::deactivateMediaCapability):
    (WebKit::WebPageProxy::resetMediaCapability):
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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


  Commit: 29a7a561047cfd2bca85df8f580d24b8fb4fe232
      https://github.com/WebKit/WebKit/commit/29a7a561047cfd2bca85df8f580d24b8fb4fe232
  Author: lan Baradlay <zalan at apple.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M Source/WebCore/rendering/RenderInline.cpp

  Log Message:
  -----------
  Cherry-pick 66b364de9dfc. rdar://122130509

    Inline box may not be present in the enclosing formatting context
    https://bugs.webkit.org/show_bug.cgi?id=268525
    rdar://119921061

    Reviewed by Antti Koivisto.

    Speculative fix when the (potentially damaged) inline box is not present in the enclosing formatting context.
    This may happen when RenderInline::linesBoundingBox is called on a dirty tree after moving an inline box (<span>)
    from a block to an other (but before clearing the tree by running layout).

    * Source/WebCore/rendering/RenderInline.cpp:
    (WebCore::RenderInline::linesBoundingBox const):

    Canonical link: https://commits.webkit.org/272448.456@safari-7618-branch


  Commit: 51276286423b379322794096f3313f2c6b488412
      https://github.com/WebKit/WebKit/commit/51276286423b379322794096f3313f2c6b488412
  Author: Mohsin Qureshi <mohsinq at apple.com>
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp

  Log Message:
  -----------
  Unreviewed build fix.


  Commit: 5ae38307e44fd0cc8812c5d47e5ddb23c53f6ca9
      https://github.com/WebKit/WebKit/commit/5ae38307e44fd0cc8812c5d47e5ddb23c53f6ca9
  Author: Qianlang Chen <qianlangchen at apple.com>
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Base/Main.js
    M Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js
    M Source/WebInspectorUI/UserInterface/Views/LogContentView.js

  Log Message:
  -----------
  Cherry-pick 08a1f3998383. rdar://122924275

    Fix Web Inspector: Remember the message type selection in the Console tab
    rdar://122924275
    https://bugs.webkit.org/show_bug.cgi?id=268882

    Reviewed by Devin Rousso.

    When showing the the inspector's console using `WI.showConsole()`, the
    caller can optionally pass in a `requestedScope` to control which levels
    (AKA message types) to be filtered automatically when the Console tab
    shows up. However, when `requestedScope` is falsy or left empty, it
    always applies `WI.LogContentView.Scopes.All` instead, which
    overrides the levels selected by default, which are read from local
    settings when the scope bar is created at the inspector's startup.

    This commit removes the forced application of `Scopes.All`, so when
    `requestedScope` is left empty, the Console tab is shown with levels
    unchanged, which is the expected behavior when launching the Console tab
    through Develop -> Show JavaScript Console (or Option-Command-C).

    This fix has one known side-effect: when an inspector tab does not
    support split console view, pressing Esc will switch to the actual
    Console tab instead. (The Settings tab is one example of such tab.)
    This commit will make that also "remember" the previously selected
    levels instead of deselecting back to just `Scopes.All`, which is
    arguably the correct behavior anyway.

    This commit also cleans up on how `requestedScope` gets passed in;
    passing in as part of the `options` parameter allows callers of
    `showConsole()` to self-document the usage `requestedScope`.

    * Source/WebInspectorUI/UserInterface/Base/Main.js:
      - Fix the bug.
      - Adapt to the clean up for the `options` parameter.
    * Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js:
    (InspectorFrontendAPI.showConsole):
      - Adapt to the clean up for the `options` parameter.
    * Source/WebInspectorUI/UserInterface/Views/LogContentView.js:
    (WI.LogContentView.prototype._showConsoleTab):
      - Adapt to the clean up for the `options` parameter.

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


  Commit: 6968af94bb07a41e45de5f180a2c0d6c49f1d47d
      https://github.com/WebKit/WebKit/commit/6968af94bb07a41e45de5f180a2c0d6c49f1d47d
  Author: Nicole Rosario <nicole_rosario at apple.com>
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
    A LayoutTests/fast/css-grid-layout/css-grid-template-rows-invalid-length-expected.txt
    A LayoutTests/fast/css-grid-layout/css-grid-template-rows-invalid-length.html
    M Source/WebCore/style/StyleBuilderConverter.h

  Log Message:
  -----------
  Cherry-pick 0b6e28662a19. rdar://123698598

    Added default length to createGridTrackBreadth() when length is undefined
    https://bugs.webkit.org/show_bug.cgi?id=269856
    rdar://119619013

    Reviewed by Sammy Gill.

    `convertToLength` returned length undefined to `createGridTrackBreadth`
    which causes an issue when creating GridLength. Added check to see if
    length is undefined and if so returned a default length = 0 instead

    * Source/WebCore/style/StyleBuilderConverter.h:
    (WebCore::Style::BuilderConverter::createGridTrackBreadth):

    Canonical link: https://commits.webkit.org/272448.626@safari-7618-branch


  Commit: 54236b048b56203d96d30ebd0d53350c3a13d62f
      https://github.com/WebKit/WebKit/commit/54236b048b56203d96d30ebd0d53350c3a13d62f
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
    A LayoutTests/fast/css/css-typed-om-typeerror-coalescing-pair-expected.txt
    A LayoutTests/fast/css/css-typed-om-typeerror-coalescing-pair.html
    M Source/WebCore/css/CSSValuePair.cpp
    M Source/WebCore/css/CSSValuePair.h
    M Source/WebCore/css/typedom/StylePropertyMap.cpp
    M Source/WebCore/style/StyleBuilderConverter.h

  Log Message:
  -----------
  Cherry-pick 51293a58e9dd. rdar://123709099

    [CSS] Fix bug when using a coalesced CSSValuePair with Typed OM
    rdar://115346002

    Reviewed by Chris Dumez.

    We use the CSSParser and the serialization of CSSValue to validate the input of Typed OM set().
    Unfortunately, sometimes a CSSValuePair serializes to a single value while it
    actually contains two values: this confuses the StyleBuilder.

    If the pair has the same values twice "10px 10px", it serializes to only "10px",
    thus pass our string-based check (inside setProperty), but then crash when the actual value is a
    pair of length instead of a simple length.

    The more frequent case when the two values are distincts, such as "10px 30px", is
    already prevented by the string-based check.

    A proper fix would be to have validation method which doesn't work
    on the serialized string value but on the actual typed CSSValue.

    For the moment, we avoid crashing and warn the user with an error.

    * LayoutTests/fast/css/css-typed-om-typeerror-coalescing-pair-expected.txt: Added.
    * LayoutTests/fast/css/css-typed-om-typeerror-coalescing-pair.html: Added.
    * Source/WebCore/css/CSSValuePair.cpp:
    (WebCore::CSSValuePair::canBeCoalesced const):
    * Source/WebCore/css/CSSValuePair.h:
    * Source/WebCore/css/typedom/StylePropertyMap.cpp:
    (WebCore::StylePropertyMap::set):
    * Source/WebCore/style/StyleBuilderConverter.h:
    (WebCore::Style::BuilderConverter::convertLengthSizing):

    Canonical link: https://commits.webkit.org/272448.627@safari-7618-branch


  Commit: 460ff24b52d940727cbdf13418a37ca7e0aafa40
      https://github.com/WebKit/WebKit/commit/460ff24b52d940727cbdf13418a37ca7e0aafa40
  Author: Claudio Saavedra <csaavedra at igalia.com>
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
    A LayoutTests/fast/block/multicolumn-with-outline-auto-expected.txt
    A LayoutTests/fast/block/multicolumn-with-outline-auto.html
    M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
    M Source/WebCore/rendering/updating/RenderTreeBuilder.h
    M Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp
    M Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h
    M Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp

  Log Message:
  -----------
  Cherry-pick 00414cbd744c. rdar://123858279

    Cherry-pick 274097.6 at webkit-2024.2-embargoed (446b237f7e06). rdar://115001663

        Prevent selection repaint in the middle of multicolumn flow destruction
        https://bugs.webkit.org/show_bug.cgi?id=263180

        Reviewed by Alan Baradlay.

        During multicolumn fragmented flow destruction, spanners are moved back
        to their original DOM position in the tree. This is done through calls
        to RenderTreeBuilderBlock::Block::detach(RenderBlockFlow&), which also
        calls the more general RenderBlock ::detach() method for each spanner.
        The former method results in the destruction of the spanner placeholders
        and the merging of the necessary multicolumn sets, but this is not done
        immediately, so the tree is temporarily inconsistent, before the
        RenderBlock detach() method is called.

        RenderTreeBuilderBlock::Block::detach(RenderBlock&), however,
        might inadvertely end up triggering a repaint of the selection that the
        tree is not ready for. I assume that this is an oversight from the possibility
        that this method gets called during RenderBlockFlow detachment. This repaint
        happens because RenderTreeBuilder::detachFromRenderElement() clears the
        selection if the child being detached is to be destroyed. As
        WillBeDestroyed::Yes is the default value in the definition of
        detachFromRenderElement(), this is assumed to be the case, even when
        that's not what happens during fragmented flow destruction.

        The problem with this is that the selection repaint will eventually find itself
        needing a consistent tree, and the fact that multicolumn sets are not merged
        yet and there are spanners without a placehoder will break assumptions made
        in RenderObject::propagateRepaintToParentWithOutlineAutoIfNeeded().

        Fix this by making it possible for both detach() methods to propagate
        WillBeDestroyed, with a default value of WillBeDestroyed::Yes to preserve
        current behavior everywhere, but explicitly passing WillBeDestroyed::No
        during fragmented flow destruction when detaching spanners, as this is what
        is actually happening. This prevents the selection repaint from happening
        before the tree is in a consistent state.

        * LayoutTests/fast/block/multicolumn-with-outline-auto-expected.txt: Added.
        * LayoutTests/fast/block/multicolumn-with-outline-auto.html: Added.
        * Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:
        (WebCore::RenderTreeBuilder::detach):
        * Source/WebCore/rendering/updating/RenderTreeBuilder.h:
        * Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp:
        (WebCore::RenderTreeBuilder::Block::detach):
        * Source/WebCore/rendering/updating/RenderTreeBuilderBlock.h:
        * Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp:
        (WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):

        Canonical link: https://commits.webkit.org/274097.6@webkit-2024.2-embargoed

    Canonical link: https://commits.webkit.org/272448.648@safari-7618-branch


  Commit: d0d9055a8f95332b158de13a8e2e0705beb513b5
      https://github.com/WebKit/WebKit/commit/d0d9055a8f95332b158de13a8e2e0705beb513b5
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/Shared/AuxiliaryProcess.h
    M Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm
    M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm
    M Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  -----------
  Cherry-pick 99fd77896fd3. rdar://123385397

    Notify options should be set as early as possible
    https://bugs.webkit.org/show_bug.cgi?id=269850
    rdar://123385397

    Reviewed by Brent Fulgham.

    Notify options should be set as early as possible before any notifications are subscribed to.

    * Source/WebKit/Shared/AuxiliaryProcess.h:
    * Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:
    (WebKit::AuxiliaryProcess::setNotifyOptions): Deleted.
    * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
    (WebKit::setNotifyOptions):
    (WebKit::XPCServiceEventHandler):
    (WebKit::XPCServiceMain):
    * Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm:
    (WebKit::tryApplyCachedSandbox):
    (WebKit::compileAndApplySandboxSlowCase):
    (WebKit::applySandbox):
    * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
    (WebKit::WebProcess::platformInitializeProcess):

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


  Commit: 1bb727968906c0599a0eb41f21d5e3d227269f02
      https://github.com/WebKit/WebKit/commit/1bb727968906c0599a0eb41f21d5e3d227269f02
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A JSTests/stress/dfg-ai-direct-get-by-id-attribute-change-transition.js
    M Source/JavaScriptCore/bytecode/PutByStatus.cpp
    M Source/JavaScriptCore/runtime/Structure.cpp
    M Source/JavaScriptCore/runtime/Structure.h

  Log Message:
  -----------
  Cherry-pick 4e48bdad7045. rdar://123858251

    [JSC] AI should observe attribute change transitions for PutByIdDirect in DFG compilation
    https://bugs.webkit.org/show_bug.cgi?id=270265
    rdar://122515736

    Reviewed by Yusuke Suzuki.

    Since DirectPutById can trigger and cache attribute change transitions,
    the AI should observe these kinds of transitions when computing for
    GetByStatus in the DFG compilation.

    * JSTests/stress/dfg-ai-attribute-change-transition-1.js: Added.
    (returnObject):
    (Opt):
    (createObjectA):
    (createObjectB):
    (initialize):
    * JSTests/stress/dfg-ai-attribute-change-transition-2.js: Added.
    (returnObject):
    (Opt):
    (createObject):
    (getStructureID):
    (main):
    * Source/JavaScriptCore/bytecode/PutByStatus.cpp:
    (JSC::PutByStatus::computeFor):
    * Source/JavaScriptCore/runtime/Structure.cpp:
    (JSC::Structure::attributeChangeTransitionToExistingStructureImpl):
    (JSC::Structure::attributeChangeTransitionToExistingStructure):
    (JSC::Structure::attributeChangeTransitionToExistingStructureConcurrently):
    * Source/JavaScriptCore/runtime/Structure.h:

    Canonical link: https://commits.webkit.org/272448.651@safari-7618-branch


  Commit: 5f9117ca8d209809223db74e3a2e9f3763bb4a55
      https://github.com/WebKit/WebKit/commit/5f9117ca8d209809223db74e3a2e9f3763bb4a55
  Author: Justin Michaud <justin_michaud at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A JSTests/stress/hoist-get-wasm-exports.js
    M Source/JavaScriptCore/dfg/DFGSafeToExecute.h

  Log Message:
  -----------
  Cherry-pick f6e2c3bb0a72. rdar://123875929

    GetWebAssemblyInstanceExports nodes should not be blindly hoisted
    https://bugs.webkit.org/show_bug.cgi?id=270259
    rdar://123617167

    Reviewed by Alexey Shvayka.

    GetWebAssemblyInstanceExports nodes should not be blindly hoisted above
    their structure check.

    ```
    case WebAssemblyInstanceExportsIntrinsic:
        ...
        addToGraph(CheckStructure, OpInfo(m_graph.addStructureSet(variant.structureSet())), thisNode);
        set(result, addToGraph(GetWebAssemblyInstanceExports, Edge(thisNode, KnownCellUse)));
    ```

    Similar to GetByOffset, we should only hoist this node if we have proven
    that the child has the structure of a WebAssembly Instance.

    * JSTests/stress/hoist-get-wasm-exports.js: Added.
    (opt):
    (main):
    * Source/JavaScriptCore/dfg/DFGSafeToExecute.h:
    (JSC::DFG::safeToExecute):

    Canonical link: https://commits.webkit.org/272448.653@safari-7618-branch


  Commit: 4376b5ddd2555cab00375178f6b01435851d1ac2
      https://github.com/WebKit/WebKit/commit/4376b5ddd2555cab00375178f6b01435851d1ac2
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/webgpu/render-bundle-validation-color-format-expected.txt
    A LayoutTests/fast/webgpu/render-bundle-validation-color-format.html
    M Source/WebGPU/WebGPU/RenderPipeline.mm

  Log Message:
  -----------
  Cherry-pick fcdb5d4b016f. rdar://123810621

    [WebGPU] Fix RenderPipeline color format validation
    https://bugs.webkit.org/show_bug.cgi?id=270333
    rdar://123810621

    Reviewed by Mike Wyrzykowski.

    If fragment.targetCount is not equal to descriptor.colorFormatCount then we want to
    verify that all color formats are undefined.  Otherwise, we want to verify that they
    are all equal to the descriptor color formats.

    * LayoutTests/fast/webgpu/render-bundle-validation-color-format-expected.txt: Added.
    * LayoutTests/fast/webgpu/render-bundle-validation-color-format.html: Added.
    * Source/WebGPU/WebGPU/RenderPipeline.mm:
    (WebGPU::RenderPipeline::validateRenderBundle const):

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


  Commit: 373b9404eb929c023dada6a7cde923707a512269
      https://github.com/WebKit/WebKit/commit/373b9404eb929c023dada6a7cde923707a512269
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.h
    M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.h
    M Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
    M Source/WebCore/Modules/WebGPU/GPUBuffer.h
    M Source/WebCore/Modules/WebGPU/GPUBufferBinding.h
    M Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.h
    M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.h
    M Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.h
    M Source/WebCore/Modules/WebGPU/GPUPresentationContext.cpp
    M Source/WebCore/Modules/WebGPU/GPUProgrammableStage.h
    M Source/WebCore/Modules/WebGPU/GPUQuerySet.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/GPUShaderModule.h
    M Source/WebCore/Modules/WebGPU/GPUTexture.h
    M Source/WebCore/Modules/WebGPU/GPUTextureView.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBindGroupDescriptor.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBindGroupLayout.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBuffer.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBufferBinding.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUCanvasConfiguration.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUComputePassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUDevice.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUImageCopyBuffer.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUImageCopyTexture.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPipelineDescriptorBase.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPipelineLayout.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUProgrammableStage.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUQuerySet.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassColorAttachment.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassDepthStencilAttachment.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassDescriptor.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUShaderModule.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUTexture.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUTextureView.h
    M Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUCanvasConfiguration.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUImageCopyTexture.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUProgrammableStage.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassColorAttachment.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp

  Log Message:
  -----------
  Cherry-pick 067f08a43f10. rdar://123810573

    Use smart pointers in Modules/WebGPU
    https://bugs.webkit.org/show_bug.cgi?id=270378
    rdar://123810573

    Reviewed by Mike Wyrzykowski.

    * Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.h:
    (): Deleted.
    * Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.h:
    * Source/WebCore/Modules/WebGPU/GPUBuffer.cpp:
    (WebCore::makeArrayBuffer):
    (WebCore::GPUBuffer::unmap):
    * Source/WebCore/Modules/WebGPU/GPUBuffer.h:
    * Source/WebCore/Modules/WebGPU/GPUBufferBinding.h:
    * Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.h:
    * Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.h:
    * Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.h:
    (): Deleted.
    * Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.h:
    * Source/WebCore/Modules/WebGPU/GPUPresentationContext.cpp:
    (WebCore::GPUPresentationContext::configure):
    * Source/WebCore/Modules/WebGPU/GPUProgrammableStage.h:
    (): Deleted.
    * Source/WebCore/Modules/WebGPU/GPUQuerySet.h:
    * Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.h:
    * Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.h:
    * Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h:
    (): Deleted.
    * Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.h:
    * Source/WebCore/Modules/WebGPU/GPUShaderModule.h:
    * Source/WebCore/Modules/WebGPU/GPUTexture.h:
    * Source/WebCore/Modules/WebGPU/GPUTextureView.h:
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUComputePassTimestampWrites.h:
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPipelineDescriptorBase.h:
    (): Deleted.
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPipelineLayout.h:
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUQuerySet.h:
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassColorAttachment.h:
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassDescriptor.h:
    (): Deleted.
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassTimestampWrites.h:
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUTextureView.h:

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


  Commit: 6d80a4b3aa79b8f322b66b3d84805ab2072c5ae6
      https://github.com/WebKit/WebKit/commit/6d80a4b3aa79b8f322b66b3d84805ab2072c5ae6
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebCore/en.lproj/Localizable.strings
    M Source/WebCore/html/HTMLAnchorElement.cpp
    M Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
    M Source/WebKit/UIProcess/SystemPreviewController.h

  Log Message:
  -----------
  Cherry-pick 6b6d3d3e61f6. rdar://124103852

    Interactionless USDZ Popups in Vision Pro
    <radar://122802255>

    Reviewed by Tim Horton.

    Show a pop-up asking the user to confirm they want to
    quick look preview a USDZ file in WebKit.

    Add a delay if the page constantly tries to open one such
    file otherwise it can be difficult to exit out of the page.

    * Source/WebCore/en.lproj/Localizable.strings:
    * Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
    * Source/WebKit/UIProcess/SystemPreviewController.h:
    * Source/WebCore/html/HTMLAnchorElement.cpp:
    (WebCore::HTMLAnchorElement::handleClick):

    Canonical link: https://commits.webkit.org/272448.672@safari-7618-branch


  Commit: 57411db0e2e488802c1b4265c0dabf3ab8f31c12
      https://github.com/WebKit/WebKit/commit/57411db0e2e488802c1b4265c0dabf3ab8f31c12
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/webgpu/queue-write-texture-offset-expected.txt
    A LayoutTests/fast/webgpu/queue-write-texture-offset.html
    M Source/WebGPU/WebGPU/Queue.mm

  Log Message:
  -----------
  Cherry-pick 6dae676c4f80. rdar://123810754

    [WebGPU] Fix bounds check with offset in Queue::writeTexture
    https://bugs.webkit.org/show_bug.cgi?id=270400
    rdar://123810754

    Reviewed by Mike Wyrzykowski.

    * LayoutTests/fast/webgpu/queue-write-texture-offset-expected.txt: Added.
    * LayoutTests/fast/webgpu/queue-write-texture-offset.html: Added.
    * Source/WebGPU/WebGPU/Queue.mm:
    (WebGPU::Queue::writeTexture):

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


  Commit: fcd9f1ce126fdd635f5781be3e48233f48016507
      https://github.com/WebKit/WebKit/commit/fcd9f1ce126fdd635f5781be3e48233f48016507
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/webgpu/optional-media-identifier-expected.txt
    A LayoutTests/fast/webgpu/optional-media-identifier.html
    M Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUExternalTextureDescriptor.h
    M Source/WebCore/platform/VideoPixelFormat.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp

  Log Message:
  -----------
  Cherry-pick da4ede4b4b39. rdar://123810898

    VideoSourceIdentifier should contain std::optional<WebCore::MediaPlayerIdentifier>
    https://bugs.webkit.org/show_bug.cgi?id=270397
    rdar://123810898

    Reviewed by Mike Wyrzykowski.

    Otherwise in RemoteDeviceProxy::importExternalTexture we send a non-nullopt identifier with a value of 0
    when what we wanted was to send nullopt.  Identifiers with a value of 0 fail to decode on the receiving
    side.  Also fix a few small issues: removed an invalid debug assertion, and call some completion handlers
    in error cases.

    * LayoutTests/fast/webgpu/optional-media-identifier-expected.txt: Added.
    * LayoutTests/fast/webgpu/optional-media-identifier.html: Added.
    * Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h:
    (WebCore::GPUExternalTextureDescriptor::mediaIdentifierForSource):
    * Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUExternalTextureDescriptor.h:
    * Source/WebCore/platform/VideoPixelFormat.cpp:
    (WebCore::convertVideoFramePixelFormat):
    * Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp:
    (WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
    * Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:
    (WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

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


  Commit: 38eb9e893511805786d738678f33f47c2fe03624
      https://github.com/WebKit/WebKit/commit/38eb9e893511805786d738678f33f47c2fe03624
  Author: Antti Koivisto <antti at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/css/viewport-unit-conversion-crash-expected.txt
    A LayoutTests/fast/css/viewport-unit-conversion-crash.html
    M Source/WebCore/css/CSSPrimitiveValue.cpp

  Log Message:
  -----------
  Cherry-pick 11d5d62ba36c. rdar://124103870

    Viewport unit conversion should work in empty frame
    https://bugs.webkit.org/show_bug.cgi?id=270289
    rdar://116715588

    Reviewed by Alan Baradlay.

    We hit a release assert in some cases.

    * LayoutTests/fast/css/viewport-unit-conversion-crash-expected.txt: Added.
    * LayoutTests/fast/css/viewport-unit-conversion-crash.html: Added.
    * Source/WebCore/css/CSSPrimitiveValue.cpp:
    (WebCore::CSSPrimitiveValue::convertingToLengthHasRequiredConversionData const):

    An empty viewport is a valid reference for resolving viewport units. The only requirement here is that we have access to one.
    Also test for non-fixed conversion first to make the code less confusing.

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


  Commit: 08ed554de66ea22175f43ecac940d5838dccf11a
      https://github.com/WebKit/WebKit/commit/08ed554de66ea22175f43ecac940d5838dccf11a
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/Platform/cocoa/CocoaHelpers.h
    M Source/WebKit/Platform/cocoa/CocoaHelpers.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm

  Log Message:
  -----------
  Cherry-pick 24d05ed65089. rdar://123060441

    Return empty port with a delay if destination extension isn't found for externally_connectable.
    https://webkit.org/b/269539
    rdar://123060441

    Reviewed by Brian Weinstein.

    Enhance privacy in web-to-extension messaging by ensuring indistinguishability between scenarios
    where an extension is not found or lacks permission to the page and when messaging is permitted.
    This approach mitigates fingerprinting based on installed extensions.

    Accomplish this by introducing a random delay for runtime.sendMessage() responses in error cases.
    Also runtime.connect() now consistently returns a port, which is subsequently disconnected after
    a random delay. Importantly, no errors are reported to the web page in any of these situations.

    Also improved port bookkeeping by always sending the PortRemoved message (was PortDisconnect)
    when the port is disconnected or garbage collected.

    * Source/WebKit/Platform/cocoa/CocoaHelpers.h:
    * Source/WebKit/Platform/cocoa/CocoaHelpers.mm:
    (WebKit::callAfterRandomDelay): Added.
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIPortCocoa.mm:
    (WebKit::WebExtensionContext::portRemoved): Added.
    (WebKit::WebExtensionContext::portDisconnect): Deleted.
    * Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionContext::runtimeWebPageSendMessage): Added work behind callAfterRandomDelay().
    (WebKit::WebExtensionContext::runtimeWebPageConnect): Ditto.
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMessagePortCocoa.mm:
    (WebKit::WebExtensionMessagePort::disconnect): Move portRemoved() call to remove().
    (WebKit::WebExtensionMessagePort::remove): Add call to portRemoved().
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIEventCocoa.mm:
    (WebKit::WebExtensionAPIEvent::addListener): Check hasExtensionContext() before using extensionContext().
    This was needed since the quarantined port has no extensionContext, and events it created don't as well.
    (WebKit::WebExtensionAPIEvent::removeListener): Ditto.
    (WebKit::WebExtensionAPIEvent::removeAllListeners): Ditto.
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm:
    (WebKit::WebExtensionAPIPort::add): ASSERT !isQuarantined(), since it should not be added to the map.
    (WebKit::WebExtensionAPIPort::remove): Return early for isQuarantined(). Send PortRemoved here.
    (WebKit::WebExtensionAPIPort::postMessage): Use renamed isDisconnected().
    (WebKit::WebExtensionAPIPort::fireMessageEventIfNeeded): Return early for isQuarantined().
    (WebKit::WebExtensionAPIPort::fireDisconnectEventIfNeeded): Moved PortDisconnect message to remove().
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIRuntimeCocoa.mm:
    (WebKit::WebExtensionAPIWebPageRuntime::sendMessage): Respond after a random delay.
    (WebKit::WebExtensionAPIWebPageRuntime::connect): Return a port, and disconnect after a random delay.
    * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIObject.h:
    (WebKit::WebExtensionAPIObject::hasExtensionContext const): Added.
    * Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIPort.h:
    (WebKit::WebExtensionAPIPort::isDisconnected const): Added.
    (WebKit::WebExtensionAPIPort::isQuarantined const): Added.
    (WebKit::WebExtensionAPIPort::WebExtensionAPIPort): Added.
    (WebKit::WebExtensionAPIPort::disconnected const): Deleted.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIRuntime.mm:
    (TEST(WKWebExtensionAPIRuntime, ConnectFromWebPageWithWrongIdentifier)): Added.
    (TEST(WKWebExtensionAPIRuntime, SendMessageFromWebPageWithWrongIdentifier)): Added.

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


  Commit: fca96c1c6010c0c18887e518f6392a1839c4ffec
      https://github.com/WebKit/WebKit/commit/fca96c1c6010c0c18887e518f6392a1839c4ffec
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm

  Log Message:
  -----------
  Cherry-pick bab9c3e3b0eb. rdar://123976956

    clipboardWrite permission does not work in Web Extensions.
    https://webkit.org/b/270419
    rdar://123976956

    Reviewed by Brian Weinstein.

    Set the javaScriptCanAccessClipboard preference when the clipboardWrite permission
    is granted or is revoked. Added three new tests to verify this works.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::permissionsDidChange): Added.
    (WebKit::WebExtensionContext::postAsyncNotification): Call permissionsDidChange().
    (WebKit::WebExtensionContext::enumerateExtensionPages): Added.
    (WebKit::WebExtensionContext::relatedWebView): Use enumerateExtensionPages().
    (WebKit::WebExtensionContext::webViewConfiguration): Set _javaScriptCanAccessClipboard
    based on the clipboardWrite permission.
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm:
    (TestWebKitAPI::runScriptWithUserGesture): Added ASSERT.
    (TEST(WKWebExtensionAPIPermissions, ClipboardWrite)): Added.
    (TEST(WKWebExtensionAPIPermissions, ClipboardWriteWithoutPermission)): Added.
    (TEST(WKWebExtensionAPIPermissions, ClipboardWriteWithRequest)): Added.

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


  Commit: 5e6dae07fb00992dc9302d413bbe36b6af9f0ce2
      https://github.com/WebKit/WebKit/commit/5e6dae07fb00992dc9302d413bbe36b6af9f0ce2
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm

  Log Message:
  -----------
  Cherry-pick 7b1151eb7248. rdar://124016968

    activeTab extension has access to page after turning the extension off, then back on
    https://bugs.webkit.org/show_bug.cgi?id=270454
    rdar://124016968

    Reviewed by Timothy Hatcher.

    When an extension is unloaded, clear the map of open tabs and windows. That will clear any active tab permissions,
    and lead to new window and tab IDs getting created if the extension is turned back on.

    While we're here, clear a bunch more extension state that should be refreshed if the extension is loaded again.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::unload):

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


  Commit: 9cfe68dc21844abe3eae7854579bbc4d0ad220de
      https://github.com/WebKit/WebKit/commit/9cfe68dc21844abe3eae7854579bbc4d0ad220de
  Author: Pascoe <pascoe at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/webauthn/WebAuthenticationUtils.cpp
    M Source/WebCore/Modules/webauthn/WebAuthenticationUtils.h
    M Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h
    M Source/WebKit/UIProcess/WebAuthentication/fido/FidoAuthenticator.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/FidoAuthenticator.h
    M Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp

  Log Message:
  -----------
  Cherry-pick 7db187aff8f9. rdar://123704181

    [WebAuthn] Add logging for authenticators
    https://bugs.webkit.org/show_bug.cgi?id=270463
    rdar://123704181

    Reviewed by Charlie Wolfe.

    This patch adds detailed logging to understand the flows through the CTAP
    and U2F authenticator code. Sometimes we hit flaky or hard to reproduce
    error conditions with security keys. This change will aid in debugging
    these cases.

    Although challenges are short-lived. We don't log the responses of successful
    makeCredential and getAssertion calls containing signatures, instead logging only
    if there was an issue with the response.

    * Source/WebCore/Modules/webauthn/WebAuthenticationUtils.cpp:
    (WebCore::toString):
    * Source/WebCore/Modules/webauthn/WebAuthenticationUtils.h:
    * Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp:
    (fido::encodeAsCBOR):
    (fido::toString): Deleted.
    * Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
    (WebKit::CtapAuthenticator::makeCredential):
    (WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
    (WebKit::CtapAuthenticator::getAssertion):
    (WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
    (WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
    (WebKit::CtapAuthenticator::getRetries):
    (WebKit::CtapAuthenticator::continueGetKeyAgreementAfterGetRetries):
    (WebKit::CtapAuthenticator::continueRequestPinAfterGetKeyAgreement):
    (WebKit::CtapAuthenticator::continueGetPinTokenAfterRequestPin):
    (WebKit::CtapAuthenticator::continueRequestAfterGetPinToken):
    (WebKit::CtapAuthenticator::tryRestartPin):
    (WebKit::CtapAuthenticator::tryDowngrade):
    (WebKit::CtapAuthenticator::aaguidForDebugging const):
    * Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h:
    * Source/WebKit/UIProcess/WebAuthentication/fido/FidoAuthenticator.cpp:
    (WebKit::FidoAuthenticator::transportForDebugging const):
    * Source/WebKit/UIProcess/WebAuthentication/fido/FidoAuthenticator.h:
    * Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:
    (WebKit::U2fAuthenticator::makeCredential):
    (WebKit::U2fAuthenticator::checkExcludeList):
    (WebKit::U2fAuthenticator::issueRegisterCommand):
    (WebKit::U2fAuthenticator::getAssertion):
    (WebKit::U2fAuthenticator::issueSignCommand):
    (WebKit::U2fAuthenticator::issueNewCommand):
    (WebKit::U2fAuthenticator::issueCommand):
    (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
    (WebKit::U2fAuthenticator::continueCheckOnlyCommandAfterResponseReceived):
    (WebKit::U2fAuthenticator::continueBogusCommandExcludeCredentialsMatchAfterResponseReceived):
    (WebKit::U2fAuthenticator::continueBogusCommandNoCredentialsAfterResponseReceived):
    (WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived):

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


  Commit: a16448c55b846fdbc2efdfa847935aa0a81cda57
      https://github.com/WebKit/WebKit/commit/a16448c55b846fdbc2efdfa847935aa0a81cda57
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/webgpu/texture-supports-blending-expected.txt
    A LayoutTests/fast/webgpu/texture-supports-blending.html
    M Source/WebGPU/WebGPU/RenderPipeline.mm

  Log Message:
  -----------
  Cherry-pick 0ade4480b548. rdar://123811134

    Check Texture::supportsBlending in addition to hasAlphaChannel
    https://bugs.webkit.org/show_bug.cgi?id=270484
    rdar://123811134

    Reviewed by Mike Wyrzykowski.

    This is being discussed in https://github.com/gpuweb/gpuweb/issues/4506
    We don't want to crash when using Metal.

    * LayoutTests/fast/webgpu/texture-supports-blending-expected.txt: Added.
    * LayoutTests/fast/webgpu/texture-supports-blending.html: Added.
    * Source/WebGPU/WebGPU/RenderPipeline.mm:
    (WebGPU::Device::createRenderPipeline):
    (WebGPU::hasAlphaChannel): Deleted.

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


  Commit: 6b33ac2ba6d4fd5e01106f1d3d63aa61365b5d01
      https://github.com/WebKit/WebKit/commit/6b33ac2ba6d4fd5e01106f1d3d63aa61365b5d01
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/webgpu/bind-group-layout-invalid-expected.txt
    A LayoutTests/fast/webgpu/bind-group-layout-invalid.html
    M Source/WebGPU/WebGPU/ComputePipeline.h
    M Source/WebGPU/WebGPU/ComputePipeline.mm
    M Source/WebGPU/WebGPU/RenderPipeline.h
    M Source/WebGPU/WebGPU/RenderPipeline.mm

  Log Message:
  -----------
  Cherry-pick 561208853674. rdar://123810931

    [WebGPU] getBindGroupLayout should return a non-null possibly-invalid layout
    https://bugs.webkit.org/show_bug.cgi?id=270469
    rdar://123810931

    Reviewed by Mike Wyrzykowski.

    * LayoutTests/fast/webgpu/bind-group-layout-invalid-expected.txt: Added.
    * LayoutTests/fast/webgpu/bind-group-layout-invalid.html: Added.
    * Source/WebGPU/WebGPU/ComputePipeline.h:
    * Source/WebGPU/WebGPU/ComputePipeline.mm:
    (WebGPU::ComputePipeline::getBindGroupLayout):
    * Source/WebGPU/WebGPU/RenderPipeline.h:
    * Source/WebGPU/WebGPU/RenderPipeline.mm:
    (WebGPU::RenderPipeline::getBindGroupLayout):

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


  Commit: be42b60164013c7e466f69a71e0bf6e62a627b0d
      https://github.com/WebKit/WebKit/commit/be42b60164013c7e466f69a71e0bf6e62a627b0d
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/fast/webgpu/image-data-8-bytes-per-pixel-expected.txt
    A LayoutTests/fast/webgpu/image-data-8-bytes-per-pixel.html
    M Source/WebCore/Modules/WebGPU/GPUQueue.cpp

  Log Message:
  -----------
  Cherry-pick ed9a48d72012. rdar://123810952

    imageBytesForSource should only copy the required bytes for images with more than 4 bytes per pixel
    https://bugs.webkit.org/show_bug.cgi?id=270493
    rdar://123810952

    Reviewed by Mike Wyrzykowski.

    Also use early returns to remove deeply nested if statements.
    Also use smart pointers to retain and release images while using them.

    * LayoutTests/fast/webgpu/image-data-8-bytes-per-pixel-expected.txt: Added.
    * LayoutTests/fast/webgpu/image-data-8-bytes-per-pixel.html: Added.
    * Source/WebCore/Modules/WebGPU/GPUQueue.cpp:
    (WebCore::imageBytesForSource):

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


  Commit: b7c267985a4f148ba6159e79d681a8758e86eb44
      https://github.com/WebKit/WebKit/commit/b7c267985a4f148ba6159e79d681a8758e86eb44
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

  Log Message:
  -----------
  Cherry-pick 6c90d822b9c4. rdar://122985287

    REGRESSION(273918 at main): WebAuthn cancel completion handler is never called
    https://bugs.webkit.org/show_bug.cgi?id=270473
    rdar://122985287

    Reviewed by Pascoe.

    A completion handler from the web process is stored in `m_cancelHandler` to be called by the delegate.
    However, the delegate is immediately cleared, so the completion handler will never be called. We
    shouldn’t clear the delegate and controller until `m_cancelHandler` is called.

    * Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

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


  Commit: adf11295ffb1aecbb6811c1f17d359eb33099bcb
      https://github.com/WebKit/WebKit/commit/adf11295ffb1aecbb6811c1f17d359eb33099bcb
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp

  Log Message:
  -----------
  Cherry-pick 341dd78efbba. rdar://123748005

    [Crash in com.apple.WebKit.WebContent] WTF::Detail::CallableWrapper<WebKit::MediaSourcePrivateRemote::setMediaPlayerReadyState(WebCore::MediaPlayerReadyState)::$_0, void>::call
    https://bugs.webkit.org/show_bug.cgi?id=270506
    rdar://123748005

    Reviewed by Youenn Fablet.

    MediaSourcePrivateRemote::m_gpuConnection is a ThreadSafeWeakPtr which can become null
    before isGPURunning() returns true (such as if the GPU process crashed or was terminated).
    Add null test.

    * Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
    (WebKit::MediaSourcePrivateRemote::addSourceBuffer):
    (WebKit::MediaSourcePrivateRemote::durationChanged):
    (WebKit::MediaSourcePrivateRemote::bufferedChanged):
    (WebKit::MediaSourcePrivateRemote::markEndOfStream):
    (WebKit::MediaSourcePrivateRemote::unmarkEndOfStream):
    (WebKit::MediaSourcePrivateRemote::setMediaPlayerReadyState):
    (WebKit::MediaSourcePrivateRemote::setTimeFudgeFactor):

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


  Commit: 6a8dcd2b8b17c278d9ee120d98dffbf4274b1b1e
      https://github.com/WebKit/WebKit/commit/6a8dcd2b8b17c278d9ee120d98dffbf4274b1b1e
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h

  Log Message:
  -----------
  Cherry-pick 247ec3b89c54. rdar://123959934

    Create a faster cache of _WKWebExtensionTabs
    https://bugs.webkit.org/show_bug.cgi?id=270488
    rdar://123959934

    Reviewed by Timothy Hatcher.

    Instead of iterating over all of the tabs in m_tabMap and checking to see if their delegates match, create a new
    data structure that is a map table from the delegate to the identifier.

    This way, we can just do one O(1) lookup instead of an O(n) iteration.

    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::WebExtensionContext):
    (WebKit::WebExtensionContext::getOrCreateTab const):
    (WebKit::WebExtensionContext::forgetTab const):
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:

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


  Commit: ddc0b6480ecbf39f5ec8fca1f40cb830299e839b
      https://github.com/WebKit/WebKit/commit/ddc0b6480ecbf39f5ec8fca1f40cb830299e839b
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  -----------
  Cherry-pick f3f8811670c3. rdar://124030130

    REGRESSION (274894 at main): [ iOS Debug ] accessibility/text-marker/text-marker-range-stale-node-crash.html is a constant crash
    https://bugs.webkit.org/show_bug.cgi?id=270477
    rdar://124030130

    Reviewed by Chris Dumez.

    Node may have started destruction by the time the RefPtr is created.

    * Source/WebCore/accessibility/AXObjectCache.cpp:
    (WebCore::AXObjectCache::characterOffsetForTextMarkerData):

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


  Commit: 767096f956c0db248e6503ea3434a93c40eb5793
      https://github.com/WebKit/WebKit/commit/767096f956c0db248e6503ea3434a93c40eb5793
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp

  Log Message:
  -----------
  Cherry-pick cd62341b1dda. rdar://124104099

    Web Inspector: Crash in Inspector::InspectorDebuggerAgent::didScheduleAsyncCall on knowyourmeme.com
    https://bugs.webkit.org/show_bug.cgi?id=270139
    rdar://123667952

    Reviewed by Pascoe.

    Avoid reading past the end of `m_pendingAsyncCalls`.

    * Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp:
    (Inspector::InspectorDebuggerAgent::didScheduleAsyncCall):

    Canonical link: https://commits.webkit.org/272448.684@safari-7618-branch


  Commit: a10eb5ff15af1e45b90b7fa3c17feb42ca50a037
      https://github.com/WebKit/WebKit/commit/a10eb5ff15af1e45b90b7fa3c17feb42ca50a037
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/compositing/plugins/pdf/pdf-plugin-hang-during-destruction-expected.txt
    A LayoutTests/compositing/plugins/pdf/pdf-plugin-hang-during-destruction.html
    M Source/WebKit/WebProcess/Plugins/PDF/PDFIncrementalLoader.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFIncrementalLoader.mm

  Log Message:
  -----------
  Cherry-pick e604d7c70127. rdar://101147811

    PDFPlugin hangs in deallocation when data load contends with waiting for thread completion
    https://bugs.webkit.org/show_bug.cgi?id=246454
    rdar://101147811

    Reviewed by Tim Horton.

    When `PDFPlugin::teardown()` would get called (on the main thread), it would
    wait for the PDF thread to complete. However, if loading is still going on,
    the PDF thread might be blocked on `dataSemaphore.wait()` in
    PDFIncrementalLoader::dataProviderGetBytesAtPosition(). The `dataSemaphore`
    is supposed to get signaled on a task dispatched to the main thread but this
    task won't run if the main thread is blocked on waiting for the thread to
    exit.

    To address the issue, PDFIncrementalLoader::clear() now signals the
    pending dataSemaphores before waiting for the thread to exit and sets a
    flag indicating we want the thread to exit. This flag is then checked
    on the PDF thread to make sure we don't queue additional work / semaphores.

    * LayoutTests/compositing/plugins/pdf/pdf-plugin-hang-during-destruction-expected.txt: Added.
    * LayoutTests/compositing/plugins/pdf/pdf-plugin-hang-during-destruction.html: Added.
    I took the test from Erica Li's earlier PR that got reverted.

    * Source/WebKit/WebProcess/Plugins/PDF/PDFIncrementalLoader.h:
    (WebKit::PDFIncrementalLoader::SemaphoreWrapper::create):
    (WebKit::PDFIncrementalLoader::SemaphoreWrapper::wait):
    (WebKit::PDFIncrementalLoader::SemaphoreWrapper::signal):
    (WebKit::PDFIncrementalLoader::WTF_GUARDED_BY_LOCK):
    * Source/WebKit/WebProcess/Plugins/PDF/PDFIncrementalLoader.mm:
    (WebKit::PDFIncrementalLoader::clear):
    (WebKit::PDFIncrementalLoader::dataProviderGetBytesAtPosition):
    (WebKit::PDFIncrementalLoader::dataProviderGetByteRanges):
    (WebKit::PDFIncrementalLoader::threadEntry):

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


  Commit: 2c6db60442a292ccc514b855a4b4354b663f97a3
      https://github.com/WebKit/WebKit/commit/2c6db60442a292ccc514b855a4b4354b663f97a3
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html
    M Source/WebCore/html/HTMLInputElement.cpp

  Log Message:
  -----------
  Cherry-pick d8a8923dfc32. rdar://124104130

    REGRESSION(273523 at main): A test case in html/semantics/forms/the-input-element/radio-disconnected-group-owner.html fails
    https://bugs.webkit.org/show_bug.cgi?id=270478

    Reviewed by Chris Dumez.

    Add the input element to tree scope's radio group after insertion if it didn't result in becoming connected.

    * LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html: Added.
    * Source/WebCore/html/HTMLInputElement.cpp:
    (WebCore::HTMLInputElement::insertedIntoAncestor):

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


  Commit: 74198e57745334744396ba07dc1aa7084eff7f64
      https://github.com/WebKit/WebKit/commit/74198e57745334744396ba07dc1aa7084eff7f64
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2024-03-07 (Thu, 07 Mar 2024)

  Changed paths:
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/MediaPlaybackTarget.h
    M Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetCocoa.h
    M Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
    M Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.h
    R Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.mm
    R Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.serialization.in
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h
    M Source/WebCore/platform/mock/MediaPlaybackTargetMock.cpp
    M Source/WebCore/platform/mock/MediaPlaybackTargetMock.h
    M Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in
    M Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp
    M Source/WebKit/Platform/SourcesCocoa.txt
    A Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.h
    A Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.mm
    A Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.serialization.in
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm

  Log Message:
  -----------
  Cherry-pick d9ce6b4272d0. rdar://123467550

    REGRESSION(274311 at main) YouTube.com in safari Airplay connects to ATV receiver, no Video plays but only Audio
    https://bugs.webkit.org/show_bug.cgi?id=270437
    rdar://123467550

    Reviewed by Youenn Fablet.

    When activating an AirPlay target on a currently playing media element,
    the UI process was sending a MediaPlaybackTargetContext to the web process, which
    would then pass it to the GPUP's AVPlayer.
    Following 274311 at main, the AVOutputContext found in the MediaPlaybackTargetContext
    would be serialized/deserialized at each IPC's endpoints. This relied on the
    generic AVOutputContext IPC serialization introduced in 271664 at main.
    However, re-constructing an AVOutputContext in the WP is not allowed by
    the sandbox. An AVOutputContext's serialization is made of a global identification
    string which can be looked up in a global table. This look-uo would always
    fail in the WP resulting in an null AVOutputContext being generated.
    Subsequently, the GPUP would receive this null AVOutputContext causing the
    AirPlay command to never reach the GPUP.

    On iOS devices similarly, the GPUP sends the notification that a new AVOutputContext had
    been selected, sends it to the WP which then re-send it for the GPUP for processing.
    As above, the transit through the WP would null the AVOutputContext.

    We revert to the behaviour pre-274311 at main which would use a transient SerializedAVOutputContext
    to pass a serialized AVOutputContext, with a cache of hasActiveRoute which would
    only be reconstructed in the GPUP.
    In order to keep the security aspect intended by 274311 at main we introduce two
    new classes: MediaPlaybackTargetSerialized and MediaPlaybackTargetContextSerialized
    which will wrap either a MediaPlaybackTargetContextCocoa or a MediaPlaybackTargetContextMock.
    The underlying AVOutputContext is now never accessed in the WP. Instead we only pass
    the underlying AVOutputContext's global ID.
    We split MediaPlaybackTargetContext into three sub-classes:
    - Cocoa/AVOutputContext
    - Mock
    - Serialized

    The MediaPlaybackTargetSerialized now uses the new serialization framework.

    Manually tested to work with an ATV and a macOS sonoma as AirPlay target.
    Some work covered by MediaPlaybackTargetMock tests; but infrastructure doesn't
    allow for comprehensive regression tests.

    * Source/WebCore/SourcesCocoa.txt:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/platform/graphics/MediaPlaybackTarget.h:
    * Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetCocoa.h:
    (isType):
    * Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm:
    (WebCore::MediaPlaybackTargetContextCocoa::MediaPlaybackTargetContextCocoa):
    (WebCore::MediaPlaybackTargetContextCocoa::deviceName const):
    (WebCore::MediaPlaybackTargetContextCocoa::hasActiveRoute const):
    (WebCore::MediaPlaybackTargetContextCocoa::supportsRemoteVideoPlayback const):
    (WebCore::MediaPlaybackTargetCocoa::create):
    (WebCore::MediaPlaybackTargetCocoa::MediaPlaybackTargetCocoa):
    (WebCore::MediaPlaybackTargetCocoa::~MediaPlaybackTargetCocoa): Deleted.
    (WebCore::toMediaPlaybackTargetCocoa): Deleted.
    * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
    (WebCore::MediaPlaybackTargetPickerMac::playbackTarget):
    * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
    (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
    * Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.h:
    (WebCore::MediaPlaybackTargetContext::MediaPlaybackTargetContext):
    (WebCore::MediaPlaybackTargetContext::mockState const): Deleted.
    (WebCore::MediaPlaybackTargetContext::outputContext const): Deleted.
    (WebCore::MediaPlaybackTargetContext::encodingRequiresPlatformData const): Deleted.
    (): Deleted.
    * Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.mm: Removed.
    * Source/WebCore/platform/mock/MediaPlaybackTargetMock.cpp:
    (WebCore::MediaPlaybackTargetMock::create):
    (WebCore::MediaPlaybackTargetMock::MediaPlaybackTargetMock):
    (WebCore::toMediaPlaybackTargetMock): Deleted.
    * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h: Add missing forward declaration.
    * Source/WebCore/platform/mock/MediaPlaybackTargetMock.h:
    (isType):
    (WebCore::MediaPlaybackTargetMock::state const): Deleted.
    * Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp:
    (WebCore::MediaPlaybackTargetPickerMock::playbackTarget):
    * Source/WebKit/DerivedSources-input.xcfilelist:
    * Source/WebKit/DerivedSources.make:
    * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:
    (WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget):
    * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:
    * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
    * Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
    (WebKit::RemoteMediaSessionHelperProxy::activeVideoRouteDidChange):
    * Source/WebKit/Platform/SourcesCocoa.txt:
    * Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.h: Added.
    (isType):
    * Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.mm: Added.
    (WebKit::MediaPlaybackTargetContextSerialized::MediaPlaybackTargetContextSerialized):
    (WebKit::MediaPlaybackTargetContextSerialized::platformContext const):
    * Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.serialization.in: Renamed from Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.serialization.in.
    * Source/WebKit/Scripts/webkit/messages.py:
    (conditions_for_header):
    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerState):
    (WebKit::WebPageProxy::Internals::setPlaybackTarget):
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
    (WebKit::MediaPlayerPrivateRemote::setWirelessPlaybackTarget):
    * Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
    (WebKit::RemoteMediaSessionHelper::activeVideoRouteDidChange):
    * Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
    * Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:
    * Source/WebKit/WebProcess/WebPage/WebPage.h:
    * Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
    * Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:
    (WebKit::WebPage::playbackTargetSelected const):

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


  Commit: 283d93bd0c7b1d4b9460bdec5b01443c0fe36c77
      https://github.com/WebKit/WebKit/commit/283d93bd0c7b1d4b9460bdec5b01443c0fe36c77
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.9

Identifier: 273664.1386 at safari-7619.1.5-branch


  Commit: bd79e7ea070ee62aded415eb53dd3027923b084a
      https://github.com/WebKit/WebKit/commit/bd79e7ea070ee62aded415eb53dd3027923b084a
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp

  Log Message:
  -----------
  Cherry-pick 5e8c33f6e1ce. rdar://123409359

    Check both browser and chrome objects in enumerateFramesAndNamespaceObjects
    https://bugs.webkit.org/show_bug.cgi?id=270657
    rdar://123409359

    Reviewed by Timothy Hatcher.

    Some extensions use a polyfill to overwrite the browser object with their own proxy. The Blue Canoe extension was doing this,
    and it led to WebExtensionContextProxy::enumerateFramesAndNamespaceObjects not being able to find the namespace object for the extension,
    since we were only checking the `browser` object.

    To fix this, check both `browser` and `chrome`, and use whichever one is valid.

    * Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.cpp:
    (WebKit::WebExtensionContextProxy::enumerateFramesAndNamespaceObjects):

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

Identifier: 273664.1387 at safari-7619.1.5-branch


  Commit: f8f66d272e30058a9d440bcaada77ac71f18b15c
      https://github.com/WebKit/WebKit/commit/f8f66d272e30058a9d440bcaada77ac71f18b15c
  Author: Tim Horton <thorton at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h

  Log Message:
  -----------
  Cherry-pick b46e324ca99c. rdar://122577452

    Apply 274319 at main to GPU-process rendered layers
    https://bugs.webkit.org/show_bug.cgi?id=270680
    rdar://122577452

    Reviewed by Megan Gardner and Richard Robinson.

    * Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.cpp:
    (WebKit::RemoteImageBufferSet::ensureBufferForDisplay):
    (WebKit::RemoteImageBufferSet::ensureDynamicContentScalingResourceCache):
    * Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h:
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::allocateImageBuffer):
    (WebKit::RemoteRenderingBackend::createImageBuffer):
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
    Copy the fix from 274319 at main into RemoteImageBufferSet, to fix the bug for
    the GPU-process-enabled case.

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

Identifier: 273664.1388 at safari-7619.1.5-branch


  Commit: 03ece7afbecf452e6c163177c5a1955aefc42d39
      https://github.com/WebKit/WebKit/commit/03ece7afbecf452e6c163177c5a1955aefc42d39
  Author: Ada Chan <adachan at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  Cherry-pick 2b9b6bf2f2fb. rdar://123777699

    [WebXR] Skip freezing layer tree with an active WebXR immersive session only when there's video content
    https://bugs.webkit.org/show_bug.cgi?id=270669
    rdar://123777699

    Reviewed by Eric Carlson.

    We initially skip freezing the layer tree with an active WebXR immersive session
    so videos can continue to get their requestVideoFrameCallback serviced. However,
    since this also incurs a power cost, we'll only do this when there's video
    content on the page.

    * Source/WebCore/page/Page.cpp:
    (WebCore::Page::shouldBlockLayerTreeFreezingForVideo):
    * Source/WebCore/page/Page.h:
    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::updateDrawingAreaLayerTreeFreezeState):

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

Identifier: 273664.1389 at safari-7619.1.5-branch


  Commit: 9823284b1f6dbb4792cf319c50a902b9a604df3f
      https://github.com/WebKit/WebKit/commit/9823284b1f6dbb4792cf319c50a902b9a604df3f
  Author: Megan Gardner <megan_gardner at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h
    M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm

  Log Message:
  -----------
  Cherry-pick 89bc7dd33ce8. rdar://122843511

    Find in Note: Dark gray outline (shadow) appears behind gray/yellow highlights when matched text found in HTML note.
    https://bugs.webkit.org/show_bug.cgi?id=270666
    rdar://122843511

    Reviewed by Aditya Keerthi.

    In notes, the WKContentView is transparent, so our original solution of putting an additional
    grey layer behind the content view that filled up the empty parts of the scroll view would show
    through and make the find ui have a incorrect grey cast. So instead, we make four views that surround
    the WKContentView to fill in any part of the scrollView that isn't covered by the contentView.
    These are arranged around the content view like so:

    ----- -----------
    |    |          |
    |    |----------|
    |    |     |    |
    |    |     |    |
    ----- ------    |
    |          |    |
    |__________|____|

    Each view is expanded to reach the edges of the scroll view every time the view is scrolled or the bounds change.
    This means that no matter where the content view is scrolled to, there will be a view that gives the correct
    grey cast to the scroll view.

    * Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h:
    * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
    (-[WKWebView scrollViewDidScroll:]):
    (-[WKWebView _frameOrBoundsMayHaveChanged]):
    (-[WKWebView _updateFindOverlayForOverflowScrollPositions]):
    (-[WKWebView _showFindOverlay]):
    (-[WKWebView _hideFindOverlay]):
    (-[WKWebView _didAddLayerForFindOverlay:]):
    (-[WKWebView _updateFindOverlayPosition]): Deleted.

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

Identifier: 273664.1390 at safari-7619.1.5-branch


  Commit: b399b39e00042b0e3964fb99db4745c23ce8f203
      https://github.com/WebKit/WebKit/commit/b399b39e00042b0e3964fb99db4745c23ce8f203
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebKit/Shared/Cocoa/WKKeyedCoder.mm

  Log Message:
  -----------
  Cherry-pick b1fa8241a6a7. rdar://124247709

    Fix memory leak under [WKKeyedCoder initWithDictionary]
    https://bugs.webkit.org/show_bug.cgi?id=270734
    rdar://124247709

    Reviewed by Darin Adler.

    Make sure we adopt the result of `[NSDictionary mutableCopy]`.

    * Source/WebKit/Shared/Cocoa/WKKeyedCoder.mm:
    (-[WKKeyedCoder initWithDictionary:]):

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

Identifier: 273664.1391 at safari-7619.1.5-branch


  Commit: 07415ce49076eadb3f547521256a9104ab5425a7
      https://github.com/WebKit/WebKit/commit/07415ce49076eadb3f547521256a9104ab5425a7
  Author: Michael Saboff <msaboff at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/runtime/ScopedArguments.h
    M Source/JavaScriptCore/runtime/SymbolTable.cpp
    M Source/JavaScriptCore/runtime/SymbolTable.h

  Log Message:
  -----------
  Cherry-pick 5bc92c9d5253. rdar://122015853

    REGRESSION: JavaScriptCore: JSC::ScopedArguments::setIndexQuickly
    https://bugs.webkit.org/show_bug.cgi?id=268409
    rdar://121748005

    Reviewed by Yusuke Suzuki.

    A code inspection of the symbol table and scoped arguments code revealed that SymbolTable::cloneScopePart() doesn't
    properly copy the ScopedArgumentsTable from the source.  Since ScopedArguments point to the WatchpointSets in the
    related SymbolTable, we need to create new WatchpointSets in the cloned SymbolTable and have the ScopedArguments
    point to the related new WatchpointSets.

    This is a speculative fix.

    * Source/JavaScriptCore/runtime/ScopedArguments.h:
    * Source/JavaScriptCore/runtime/SymbolTable.cpp:
    (JSC::SymbolTable::cloneScopePart):
    (JSC::SymbolTable::hasScopedWatchpointSet):
    * Source/JavaScriptCore/runtime/SymbolTable.h:

    Canonical link: https://commits.webkit.org/272448.422@safari-7618-branch

Identifier: 273664.1392 at safari-7619.1.5-branch


  Commit: 93b5da0bf4b29d5ca85966e291ef3130e338bd24
      https://github.com/WebKit/WebKit/commit/93b5da0bf4b29d5ca85966e291ef3130e338bd24
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBuffer.h

  Log Message:
  -----------
  Unreviewed fix.

Identifier: 273664.1393 at safari-7619.1.5-branch


  Commit: b8868aad4f4c106c155a7b2e0868878e098e3049
      https://github.com/WebKit/WebKit/commit/b8868aad4f4c106c155a7b2e0868878e098e3049
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/GPUBuffer.h

  Log Message:
  -----------
  Unreviewed fix.

Identifier: 273664.1394 at safari-7619.1.5-branch


  Commit: 66367e64e6e1b24307f208da966dc516186537a8
      https://github.com/WebKit/WebKit/commit/66367e64e6e1b24307f208da966dc516186537a8
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBuffer.h

  Log Message:
  -----------
  Revert "Unreviewed fix."

This reverts commit 93b5da0bf4b29d5ca85966e291ef3130e338bd24.

Identifier: 273664.1395 at safari-7619.1.5-branch


  Commit: aa4a1fe275462425e31d8a0f5c4f30cf3d698e52
      https://github.com/WebKit/WebKit/commit/aa4a1fe275462425e31d8a0f5c4f30cf3d698e52
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/GPUBuffer.h

  Log Message:
  -----------
  Unreviewed fix.

Identifier: 273664.1396 at safari-7619.1.5-branch


  Commit: 9cd05cc36a8a1d5c70da0b0b885232e8db2645ad
      https://github.com/WebKit/WebKit/commit/9cd05cc36a8a1d5c70da0b0b885232e8db2645ad
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.h
    M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.h
    M Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
    M Source/WebCore/Modules/WebGPU/GPUBuffer.h
    M Source/WebCore/Modules/WebGPU/GPUBufferBinding.h
    M Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.h
    M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.h
    M Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.h
    M Source/WebCore/Modules/WebGPU/GPUPresentationContext.cpp
    M Source/WebCore/Modules/WebGPU/GPUProgrammableStage.h
    M Source/WebCore/Modules/WebGPU/GPUQuerySet.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassColorAttachment.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassDepthStencilAttachment.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h
    M Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/GPUShaderModule.h
    M Source/WebCore/Modules/WebGPU/GPUTexture.h
    M Source/WebCore/Modules/WebGPU/GPUTextureView.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBindGroupDescriptor.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBindGroupLayout.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBuffer.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUBufferBinding.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUCanvasConfiguration.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUComputePassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUDevice.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUImageCopyBuffer.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUImageCopyTexture.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPipelineDescriptorBase.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUPipelineLayout.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUProgrammableStage.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUQuerySet.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassColorAttachment.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassDepthStencilAttachment.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassDescriptor.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPURenderPassTimestampWrites.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUShaderModule.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUTexture.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUTextureView.h
    M Source/WebKit/Shared/WebGPU/WebGPUBindGroupDescriptor.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUBufferBinding.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUCanvasConfiguration.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUComputePassTimestampWrites.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUImageCopyBuffer.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUImageCopyTexture.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUPipelineDescriptorBase.cpp
    M Source/WebKit/Shared/WebGPU/WebGPUProgrammableStage.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassColorAttachment.cpp
    M Source/WebKit/Shared/WebGPU/WebGPURenderPassTimestampWrites.cpp

  Log Message:
  -----------
  Revert "Cherry-pick 067f08a43f10. rdar://123810573"

This reverts commit 373b9404eb929c023dada6a7cde923707a512269.

Identifier: 273664.1397 at safari-7619.1.5-branch


  Commit: e5226c95e962b7cd75c9b88549b3a0db52c800c5
      https://github.com/WebKit/WebKit/commit/e5226c95e962b7cd75c9b88549b3a0db52c800c5
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-12 (Tue, 12 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/runtime/ScopedArguments.h
    M Source/JavaScriptCore/runtime/SymbolTable.cpp
    M Source/JavaScriptCore/runtime/SymbolTable.h

  Log Message:
  -----------
  Revert "Cherry-pick 5bc92c9d5253. rdar://122015853"

This reverts commit 07415ce49076eadb3f547521256a9104ab5425a7.

Identifier: 273664.1398 at safari-7619.1.5-branch


  Commit: 5c5bb79d33502867ffda81dd447cdc65045d4d6f
      https://github.com/WebKit/WebKit/commit/5c5bb79d33502867ffda81dd447cdc65045d4d6f
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-12 (Tue, 12 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/webauthn/WebAuthenticationUtils.cpp
    M Source/WebCore/Modules/webauthn/WebAuthenticationUtils.h
    M Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/CtapAuthenticator.h
    M Source/WebKit/UIProcess/WebAuthentication/fido/FidoAuthenticator.cpp
    M Source/WebKit/UIProcess/WebAuthentication/fido/FidoAuthenticator.h
    M Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp

  Log Message:
  -----------
  Revert "Cherry-pick 7db187aff8f9. rdar://123704181"

This reverts commit 9cfe68dc21844abe3eae7854579bbc4d0ad220de.

Identifier: 273664.1399 at safari-7619.1.5-branch


  Commit: 42e2bb60b9446592a370ddbac5be51fc3d29f766
      https://github.com/WebKit/WebKit/commit/42e2bb60b9446592a370ddbac5be51fc3d29f766
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-12 (Tue, 12 Mar 2024)

  Changed paths:
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/MediaPlaybackTarget.h
    M Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetCocoa.h
    M Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
    M Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.h
    A Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.mm
    A Source/WebCore/platform/graphics/cocoa/MediaPlaybackTargetContext.serialization.in
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h
    M Source/WebCore/platform/mock/MediaPlaybackTargetMock.cpp
    M Source/WebCore/platform/mock/MediaPlaybackTargetMock.h
    M Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in
    M Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp
    M Source/WebKit/Platform/SourcesCocoa.txt
    R Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.h
    R Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.mm
    R Source/WebKit/Platform/cocoa/MediaPlaybackTargetContextSerialized.serialization.in
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm

  Log Message:
  -----------
  Revert "Cherry-pick d9ce6b4272d0. rdar://123467550"

This reverts commit 74198e57745334744396ba07dc1aa7084eff7f64.

Identifier: 273664.1400 at safari-7619.1.5-branch


  Commit: 09a5bf753a86b205d634b8339b639d74a08305f8
      https://github.com/WebKit/WebKit/commit/09a5bf753a86b205d634b8339b639d74a08305f8
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2024-03-12 (Tue, 12 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm
    M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h
    M Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm

  Log Message:
  -----------
  Cherry-pick 08b992300207. rdar://124490572

    Support moving a Web Extension tab to and from WINDOW_ID_NONE.
    https://webkit.org/b/270260
    rdar://123102191

    Reviewed by Brian Weinstein.

    Safari needs to move tabs to and from WINDOW_ID_NONE when switching Tab Groups.
    The existing didMoveTab:fromIndex:inWindow: method needed updated to support this,
    and properly fire the tabs events.

    Updated existing testing support to allow assigning nil to a tab's window.

    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.h:
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionContext.mm:
    (-[_WKWebExtensionContext didMoveTab:fromIndex:inWindow:]): Handle NSNotFound.
    * Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionController.h:
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::didMoveTab): Enumerate all the possible move combos
    when logging, and fire the appropriate events for for each possibility.
    * Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPITabs.mm:
    (TEST(WKWebExtensionAPITabs, DetachAndAttachToWindowIDNone)): Added.
    (TEST(WKWebExtensionAPITabs, DetachAndAttachFromWindowIDNone)): Added.
    * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.h:
    * Tools/TestWebKitAPI/cocoa/WebExtensionUtilities.mm:
    (-[TestWebExtensionTab assignWindow:]): Added.
    (-[TestWebExtensionTab setWindow:]): Added. Call didMoveTab:::.
    (-[TestWebExtensionWindow removeTab:]): Added.
    (-[TestWebExtensionWindow insertTab:atIndex:]): Added.
    (-[TestWebExtensionWindow moveTab:toIndex:]): Use assignWindow:. And pass self
    when the tab is moving in the same window.

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

Identifier: 273664.1401 at safari-7619.1.5-branch


  Commit: f031f880fad8617c26ab2c84a70adf1036795db1
      https://github.com/WebKit/WebKit/commit/f031f880fad8617c26ab2c84a70adf1036795db1
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-03-12 (Tue, 12 Mar 2024)

  Changed paths:
    M Source/WebKit/Scripts/compile-sandbox.sh

  Log Message:
  -----------
  Cherry-pick 6c474aa470d6. rdar://124373752

    Use system import directory when compiling sandboxes
    https://bugs.webkit.org/show_bug.cgi?id=270868
    rdar://124373752

    Reviewed by Chris Dumez.

    Use system import directory when compiling sandboxes on macOS. This fixes a build issue seen on some
    host configurations.

    This patch was written by Christian Schmidt and Per Arne Vollan.

    * Source/WebKit/Scripts/compile-sandbox.sh:

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

Identifier: 273664.1402 at safari-7619.1.5-branch


  Commit: c032d337bc6ceab5768f231af5f834f61575d4e2
      https://github.com/WebKit/WebKit/commit/c032d337bc6ceab5768f231af5f834f61575d4e2
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2024-03-18 (Mon, 18 Mar 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.10

Identifier: 274941.126 at safari-7619.1.5-branch


  Commit: 3b9cd5643fa9067f5bdbfb478e6761996fa889aa
      https://github.com/WebKit/WebKit/commit/3b9cd5643fa9067f5bdbfb478e6761996fa889aa
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2024-03-19 (Tue, 19 Mar 2024)

  Changed paths:
    M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
    M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/WebProcess.messages.in
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
    M Source/WebKit/WebProcess/com.apple.WebProcess.sb.in

  Log Message:
  -----------
  Cherry-pick 1f0b1256ce86. rdar://123524381

    Enable forwarding of notifications
    https://bugs.webkit.org/show_bug.cgi?id=270003
    rdar://123524381

    Reviewed by Brent Fulgham.

    Enable forwarding of notifications from the UI process to the WebContent process.

    * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
    * Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
    (WebKit::WebProcessPool::registerNotificationObservers):
    (WebKit::WebProcessPool::unregisterNotificationObservers):
    * Source/WebKit/UIProcess/WebProcessPool.h:
    * Source/WebKit/WebProcess/WebProcess.h:
    * Source/WebKit/WebProcess/WebProcess.messages.in:
    * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
    (WebKit::WebProcess::postNotification):
    * Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

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

Identifier: 274941.127 at safari-7619.1.5-branch


  Commit: 632d24da381e4144206447f686d404f1dec5cbaa
      https://github.com/WebKit/WebKit/commit/632d24da381e4144206447f686d404f1dec5cbaa
  Author: Russell Epstein <repstein at apple.com>
  Date:   2024-03-21 (Thu, 21 Mar 2024)

  Changed paths:
    M Configurations/Version.xcconfig

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

WebKit-7619.1.5.99.1

Identifier: 274941.128 at safari-7619.1.5.99-branch


  Commit: ea1c3563089748e961340621d7ac9f6374e89c71
      https://github.com/WebKit/WebKit/commit/ea1c3563089748e961340621d7ac9f6374e89c71
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2024-03-21 (Thu, 21 Mar 2024)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libaom.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig
    M Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig
    M Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [Cocoa] Rename libwebrtc static sublibraries
rdar://122345708
https://bugs.webkit.org/show_bug.cgi?id=268910

We add a _webkit suffix to libwebrtc dylib third party static libraries.
This makes the purpose of these static libraries clearer.

* Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libaom.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
* Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
* Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj:

Identifier: 274941.129 at safari-7619.1.5.99-branch


Compare: https://github.com/WebKit/WebKit/compare/714a909c9619%5E...ea1c35630897

To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list