Hi,

I noticed in glancing over WebPreferences.yaml that we have a large number of experimental features enabled by default. There is a comment header indicating that the only allowed values are false or DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, so true is disallowed, but that's being ignored in many cases. It's become a bit difficult to notice the comment header because the experimental feature list has grown quite large in the past year or two.

Background: DEFAULT_EXPERIMENTAL_FEATURES_ENABLED is enabled by default in the XCode build (because Apple disables experimental features on branches, not trunk), disabled by default in the CMake build (to prevent experimental features from sneaking into GTK and WPE releases), and finally enabled by build-webkit (so experimental features are always enabled for bots and developers).

I'm planning to change the default values of the following features from true (not allowed for experimental features) to DEFAULT_EXPERIMENTAL_FEATURES_ENABLED:

CacheAPIEnabled
ConstantPropertiesEnabled
CrossOriginWindowPolicySupportEnabled
IsSecureContextAttributeEnabled
StorageAccessAPIEnabled
SubresourceIntegrityEnabled
RestrictedHTTPResponseAccess
CrossOriginResourcePolicyEnabled
StorageAccessPromptsEnabled

But I wonder if this is OK for all of the above features, as no doubt the intention behind using true was to make the feature always enabled. So if any of the above features are no longer experimental and should be enabled by default on all ports, please speak up so they can be graduated out of the experimental features category. My recommended sanity-check is that if the feature is ready for all Safari users and not just Tech Preview users, then it's probably no longer experimental.

A couple more oddities:

I'll mark CSSAnimationTriggersEnabled as experimental, since it uses DEFAULT_EXPERIMENTAL_FEATURES_ENABLED and is clearly intended to be.

For DisabledAdaptationsMetaTagEnabled, I'm not sure. We could change the default value from DISABLED_ADAPTATIONS_META_TAG_ENABLED to DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, and add a PLATFORM(WATCHOS) condition. I think this should be OK for watchOS. Alternatively, I wonder if it might be better to consider it non-experimental and simply set the default to true (with a PLATFORM(WATCHOS) condition)?

Michael

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to