[webkit-changes] [WebKit/WebKit] 81a368: Replace +[WKPreferences _experimentalFeatures] and...
Elliott Williams
noreply at github.com
Tue Jan 10 15:18:00 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 81a368e50d6eb22af62d70a23ffa2b7d7ad3d7cc
https://github.com/WebKit/WebKit/commit/81a368e50d6eb22af62d70a23ffa2b7d7ad3d7cc
Author: Elliott Williams <emw at apple.com>
Date: 2023-01-10 (Tue, 10 Jan 2023)
Changed paths:
M Source/WTF/Scripts/GeneratePreferences.rb
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
M Source/WebKit/Headers.cmake
R Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb
A Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb
R Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb
M Source/WebKit/Shared/API/APIObject.h
M Source/WebKit/Shared/API/c/WKBase.h
M Source/WebKit/Shared/Cocoa/APIObject.mm
M Source/WebKit/Sources.txt
M Source/WebKit/SourcesCocoa.txt
R Source/WebKit/UIProcess/API/APIExperimentalFeature.cpp
R Source/WebKit/UIProcess/API/APIExperimentalFeature.h
A Source/WebKit/UIProcess/API/APIFeature.cpp
A Source/WebKit/UIProcess/API/APIFeature.h
R Source/WebKit/UIProcess/API/APIInternalDebugFeature.cpp
R Source/WebKit/UIProcess/API/APIInternalDebugFeature.h
M Source/WebKit/UIProcess/API/C/WKAPICast.h
R Source/WebKit/UIProcess/API/C/WKExperimentalFeature.cpp
R Source/WebKit/UIProcess/API/C/WKExperimentalFeature.h
A Source/WebKit/UIProcess/API/C/WKFeature.cpp
A Source/WebKit/UIProcess/API/C/WKFeature.h
R Source/WebKit/UIProcess/API/C/WKInternalDebugFeature.cpp
R Source/WebKit/UIProcess/API/C/WKInternalDebugFeature.h
M Source/WebKit/UIProcess/API/C/WKPreferences.cpp
M Source/WebKit/UIProcess/API/C/WebKit2_C.h
M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm
M Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h
M Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.h
M Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm
R Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h
A Source/WebKit/UIProcess/API/Cocoa/_WKFeature.h
A Source/WebKit/UIProcess/API/Cocoa/_WKFeature.mm
A Source/WebKit/UIProcess/API/Cocoa/_WKFeatureInternal.h
M Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.h
M Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm
R Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeatureInternal.h
M Source/WebKit/UIProcess/WebPreferences.cpp
M Source/WebKit/UIProcess/WebPreferences.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Tools/MiniBrowser/mac/AppDelegate.m
M Tools/MiniBrowser/mac/SettingsController.m
M Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
M Tools/TestWebKitAPI/Tests/WebKit/CookieConsent.mm
M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
M Tools/TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPageAPI.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewThemeColor.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebLocks.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm
M Tools/TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm
M Tools/TestWebKitAPI/Tests/mac/DateInputTests.mm
Log Message:
-----------
Replace +[WKPreferences _experimentalFeatures] and +[WKPreferences _internalDebugFeatures] with SPI for exposing all features
https://bugs.webkit.org/show_bug.cgi?id=250237
rdar://103648153
Reviewed by Brent Fulgham.
Add +[WKPreferences _features] and WebPreferences::features(), which
exposes the entire feature list, now that features are unified and distinguished by
status. Prepare to deprecate other ways to access the feature list from
WebKit.
Unify the internal and experimental feature classes into one class.
API::ExperimentalFeature and API::InternalDebugFeature are now
"API::Feature". In Cocoa SPI, _WKExperimentalFeature and
_WKInternalDebugFeature are now "_WKFeature", though the old classes
have been left around for compatibility.
Rename-only file changes omitted from this change list:
* Source/WTF/Scripts/GeneratePreferences.rb:
* Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb:
Renamed from Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb.
Instead of generating separate "experimental" and "internal debug"
vectors, it now generates one vector for WebPreferences::features().
* Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb: Removed.
* Source/WebKit/UIProcess/API/APIExperimentalFeature.h: Removed.
* Source/WebKit/UIProcess/API/APIFeature.cpp: Renamed from Source/WebKit/UIProcess/API/APIExperimentalFeature.cpp.
* Source/WebKit/UIProcess/API/APIFeature.h: Renamed from Source/WebKit/UIProcess/API/APIInternalDebugFeature.h.
* Source/WebKit/UIProcess/API/APIInternalDebugFeature.cpp: Removed.
* Source/WebKit/UIProcess/API/C/WKFeature.cpp: Renamed from Source/WebKit/UIProcess/API/C/WKExperimentalFeature.cpp.
* Source/WebKit/UIProcess/API/C/WKFeature.h: Renamed from Source/WebKit/UIProcess/API/C/WKExperimentalFeature.h.
* Source/WebKit/UIProcess/API/C/WKInternalDebugFeature.cpp: Removed.
* Source/WebKit/UIProcess/API/C/WKInternalDebugFeature.h: Removed.
* Source/WebKit/UIProcess/API/C/WKPreferences.cpp:
* Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:
(+[WKPreferences _features]): Added.
These methods used to be legacy ways to enable experimental features
(before internal debug features were added). Repurpose them to work for
*any* feature.
(-[WKPreferences _isEnabledForFeature:]):
(-[WKPreferences _setEnabled:forFeature:]):
These are the legacy ways to access features. They should be deprecated
in a future change, and internally they are refactored to use the above.
(+[WKPreferences _internalDebugFeatures]):
(-[WKPreferences _isEnabledForInternalDebugFeature:]):
(-[WKPreferences _setEnabled:forInternalDebugFeature:]):
(+[WKPreferences _experimentalFeatures]):
(-[WKPreferences _isEnabledForExperimentalFeature:]):
(-[WKPreferences _setEnabled:forExperimentalFeature:]):
* Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.h: Stub
subclass of _WKFeature for binary compatibility.
* Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm:
(-[_WKExperimentalFeature dealloc]): Deleted.
(-[_WKExperimentalFeature description]): Deleted.
(-[_WKExperimentalFeature name]): Deleted.
(-[_WKExperimentalFeature status]): Deleted.
(-[_WKExperimentalFeature key]): Deleted.
(-[_WKExperimentalFeature details]): Deleted.
(-[_WKExperimentalFeature defaultValue]): Deleted.
(-[_WKExperimentalFeature isHidden]): Deleted.
(-[_WKExperimentalFeature _apiObject]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/_WKFeature.h: Added.
* Source/WebKit/UIProcess/API/Cocoa/_WKFeature.mm: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm.
(-[_WKFeature _apiObject]):
* Source/WebKit/UIProcess/API/Cocoa/_WKFeatureInternal.h: Renamed from Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h.
* Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.h: Stub
subclass of _WKFeature for binary compatibility.
* Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm:
(-[_WKInternalDebugFeature dealloc]): Deleted.
(-[_WKInternalDebugFeature description]): Deleted.
(-[_WKInternalDebugFeature name]): Deleted.
(-[_WKInternalDebugFeature status]): Deleted.
(-[_WKInternalDebugFeature key]): Deleted.
(-[_WKInternalDebugFeature details]): Deleted.
(-[_WKInternalDebugFeature defaultValue]): Deleted.
(-[_WKInternalDebugFeature isHidden]): Deleted.
(-[_WKInternalDebugFeature _apiObject]): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeatureInternal.h: Removed.
* Source/WebKit/UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::experimentalFeatures): This vector used to be
produced by the source generator. Now, it's initialized once at runtime
by filtering the list of features.
(WebKit::WebPreferences::internalDebugFeatures): Ditto.
* Source/WebKit/UIProcess/WebPreferences.h:
* Tools/MiniBrowser/mac/AppDelegate.m: Updated to use
+[WKPreferences _features] and the corresponding setter/getter.
* Tools/MiniBrowser/mac/SettingsController.m: Ditto.
* Tools/MiniBrowser/win/WebKitBrowserWindow.cpp: Use updated C API.
TestWebKitAPI is largely changed over to use +[WKPreferences _features]
instead of one of the legacy interfaces. Other changes include:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
This test used to turn on all "experimental" features to test whether
some were disabled in Lockdown mode. Now, it turns on all testable and
preview features, as those are closer to what LDM actually disables.
Canonical link: https://commits.webkit.org/258746@main
More information about the webkit-changes
mailing list