[webkit-changes] [WebKit/WebKit] 429cc4: Add a 'status' field to feature flags denoting the...

Elliott Williams noreply at github.com
Tue Nov 29 22:30:46 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 429cc4c7898637e262eae873994cbec3c7ffcdf6
      https://github.com/WebKit/WebKit/commit/429cc4c7898637e262eae873994cbec3c7ffcdf6
  Author: Elliott Williams <emw at apple.com>
  Date:   2022-11-29 (Tue, 29 Nov 2022)

  Changed paths:
    M Source/WTF/Scripts/GeneratePreferences.rb
    M Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb
    M Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb
    M Source/WebKit/UIProcess/API/APIExperimentalFeature.cpp
    M Source/WebKit/UIProcess/API/APIExperimentalFeature.h
    A Source/WebKit/UIProcess/API/APIFeatureStatus.h
    M Source/WebKit/UIProcess/API/APIInternalDebugFeature.cpp
    M Source/WebKit/UIProcess/API/APIInternalDebugFeature.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.h
    M Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKitLegacy/mac/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb
    M Source/WebKitLegacy/mac/Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb
    M Source/WebKitLegacy/mac/WebView/WebFeature.h
    M Source/WebKitLegacy/mac/WebView/WebFeature.m
    M Source/WebKitLegacy/mac/WebView/WebFeatureInternal.h

  Log Message:
  -----------
  Add a 'status' field to feature flags denoting their use case
https://bugs.webkit.org/show_bug.cgi?id=247926
rdar://92112770

Reviewed by Brent Fulgham.

Add enum types representing different semantic labels for feature flags.
Add status fields to our various feature flag types:

- Cross-platform WebKit: API::ExperimentalFeature.status() and API::InternalDebugFeature.status()
- Cocoa WebKit SPI: -[_WKExperimentalFeature status] and -[_WKInternalDebugFeature status]
- WebKitLegacy: -[WebFeature status]

Update GeneratePreferences.rb to read a "status" field from
WebPreferences yamls, and update its templates to pass this through to
the feature instantiation site.

Currently, individual preferences do not declare their own status;
instead, the generator picks an appropriate status based on which file
the preference is declared in. Eventually, we will merge these files into a
single preferences manifest, and use the status field to determine where
a feature gets exposed.

* Source/WTF/Scripts/GeneratePreferences.rb:
* Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
* Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
* Source/WebKit/UIProcess/API/APIExperimentalFeature.cpp:
(API::ExperimentalFeature::create):
(API::ExperimentalFeature::ExperimentalFeature):
* Source/WebKit/UIProcess/API/APIExperimentalFeature.h:
* Source/WebKit/UIProcess/API/APIFeatureStatus.h: Copied from Source/WebKitLegacy/mac/WebView/WebFeatureInternal.h.
* Source/WebKit/UIProcess/API/APIInternalDebugFeature.cpp:
(API::InternalDebugFeature::create):
(API::InternalDebugFeature::InternalDebugFeature):
* Source/WebKit/UIProcess/API/APIInternalDebugFeature.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKExperimentalFeature.mm:
(-[_WKExperimentalFeature status]):
* Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKInternalDebugFeature.mm:
(-[_WKInternalDebugFeature status]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKitLegacy/mac/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
* Source/WebKitLegacy/mac/Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb:
* Source/WebKitLegacy/mac/WebView/WebFeature.h:
* Source/WebKitLegacy/mac/WebView/WebFeature.m:
(-[WebFeature initWithKey:preferenceKey:name:status:details:defaultValue:hidden:]):
(-[WebFeature initWithKey:preferenceKey:name:details:defaultValue:hidden:]): Deleted.
* Source/WebKitLegacy/mac/WebView/WebFeatureInternal.h:

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




More information about the webkit-changes mailing list