[webkit-dev] Experimental features enabled by default
Michael Catanzaro
mcatanzaro at igalia.com
Wed Jun 20 11:12:08 PDT 2018
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
More information about the webkit-dev
mailing list