[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