[webkit-dev] New status field required for feature flags

Elliott Williams emw at apple.com
Fri Jan 13 14:49:45 PST 2023

> On Jan 10, 2023, at 06:39, Michael Catanzaro <mcatanzaro at redhat.com> wrote:
> Different default values for different ports is unavoidable; there are many many other examples besides PDF.js where ports just need to be different. But I think it's OK for the status field to be the same on all platforms. Just set the status value to whatever works best for Apple. The status field could control the *default* default value, which you can feature on https://webkit.org/status/, but ports should still be able to override it if needed. Sound good?
> By the way, while this seems like a good cleanup to me, I see there are really a *lot* of statuses defined. I don't think I'd be able to understand which one is correct to use for a feature unless I have that table explaining what each one does in front of me. I wonder if they're all truly required.

I’m adding some inline documentation to UnifiedWebPreferences.yaml in https://github.com/WebKit/WebKit/pull/8549, to help clarify things. Feedback appreciated!

> On Jan 10, 2023, at 07:31, Jean-Yves Avenard <jean-yves.avenard at apple.com> wrote:
> Hi.
> What status should be used for:
> "Enabled by default on most platforms except those we’ve decided not to support or if a local system dependency can’t be met but feature is still ready for general use, but UI to toggle the feature remains to support debugging, A/B testing."

That should be an acceptable use for ‘stable’. With this in mind, Brent and I updated the definition of ’stable’ to relax it a bit:

	ON by default. Some platforms may deviate from default behavior due to # support or needed dependencies.

> That defaultValue could be ignored in the future seems a regression and doesn’t address some existing use cases.

While we don’t have any enforcement of the defaults now (i.e. the the feature defaults are only advisory, and whatever is in defaultValue is used), I’d like to get us to a point where the defaults are widely used. The only time we should need to deviate is for platform-specific considerations like these. If and when we get there, I’ll make sure the defaultValue is *not* silently ignored by the code generator :)


More information about the webkit-dev mailing list