Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 31a5af577c9a2400a20ea153e63fc1d8863766a5
https://github.com/WebKit/WebKit/commit/31a5af577c9a2400a20ea153e63fc1d8863766a5
Author: Aditya Keerthi <[email protected]>
Date: 2025-09-16 (Tue, 16 Sep 2025)
Changed paths:
M Configurations/WebKitTargetConditionals.xcconfig
M Source/WebKit/Configurations/WebKit.xcconfig
Log Message:
-----------
REGRESSION (296457@main): [iOS] Safari launch time has regressed
https://bugs.webkit.org/show_bug.cgi?id=298918
rdar://155641865
Reviewed by Abrar Rahman Protyasha.
296457@main introduced the first use of GameController.framework in
WebKit.framework. This introduced a launch time regression as
GameController.framework lazy loads GameControllerUI.framework in a static
initializer (+initialize).
When `WKMouseDeviceObserver.start()` is called and the `.GCMouseDidConnect`
symbol is used, the initializer is invoked and GameControllerUI.framework is
loaded using the costly `dlopen()`.
GameController.framework cannot avoid the lazy loading without significant
refactoring (tracked in rdar://141183512). Instead, fix by having WebKit
directly link GameControllerUI. This will make the cost of the GameController's
`dlopen()` of GameControllerUI effectively zero, as the framework will already
be loaded.
* Configurations/WebKitTargetConditionals.xcconfig:
Introduce visionOS target conditionals, since GameControllerUI only exists on
visionOS 26+.
* Source/WebKit/Configurations/WebKit.xcconfig:
Weak link the framework since it is not available in all configurations.
Upward link the framework to avoid introducing a dependency cycle.
Canonical link: https://commits.webkit.org/300047@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes