[webkit-dev] Experimental features enabled by default

Tim Horton timothy_horton at apple.com
Wed Jun 20 16:06:23 PDT 2018

Resending from the right address.

> On Jun 20, 2018, at 11:12 AM, Michael Catanzaro <mcatanzaro at igalia.com> wrote:
> Hi,

Apple folks have been chatting about this elsewhere, so it’s a humorous coincidence to see this here at the same time.

> 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.

It’s definitely not OK, no.

I think we have some sorting out of this to do, I think it would be appreciated if you could hold off for a little bit. Sorry for the mess!

> 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 at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

More information about the webkit-dev mailing list