Commit e40bdbd3 authored by Ian Clelland's avatar Ian Clelland Committed by Commit Bot

Add a flag for experimental-productivity-features.

This flag enables a set of features which are intended to help improve
web developer productivity, by restricting the use of web-platform
features which are commonly problematic, as well as adding new high-
level APIs for common development patterns.

This currently just enables three opt-in policy-controlled features:
 - sync-script
 - unsized-media
 - vertical-scroll

Other policy-controlled features and LAPIs are expected to be added to
this set in the future.

Bug: 837344
Change-Id: Id7f89cbe2cc6fdc92278a42ea033e0fef0baabcb
Reviewed-on: https://chromium-review.googlesource.com/1030906Reviewed-by: default avatarJeremy Roman <jbroman@chromium.org>
Commit-Queue: Ian Clelland <iclelland@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554482}
parent 526c7254
......@@ -151,9 +151,8 @@ bool IsSupportedInFeaturePolicy(mojom::FeaturePolicyFeature feature) {
case mojom::FeaturePolicyFeature::kSyncXHR:
return true;
case mojom::FeaturePolicyFeature::kUnsizedMedia:
return RuntimeEnabledFeatures::FeaturePolicyExperimentalFeaturesEnabled();
case mojom::FeaturePolicyFeature::kVerticalScroll:
return RuntimeEnabledFeatures::FeaturePolicyExperimentalFeaturesEnabled();
return RuntimeEnabledFeatures::ExperimentalProductivityFeaturesEnabled();
default:
return false;
}
......@@ -195,6 +194,14 @@ const FeatureNameMap& GetDefaultFeatureNameMap() {
default_feature_name_map.Set(
"picture-in-picture", mojom::FeaturePolicyFeature::kPictureInPicture);
}
if (RuntimeEnabledFeatures::ExperimentalProductivityFeaturesEnabled()) {
default_feature_name_map.Set("sync-script",
mojom::FeaturePolicyFeature::kSyncScript);
default_feature_name_map.Set("unsized-media",
mojom::FeaturePolicyFeature::kUnsizedMedia);
default_feature_name_map.Set(
"vertical-scroll", mojom::FeaturePolicyFeature::kVerticalScroll);
}
if (RuntimeEnabledFeatures::FeaturePolicyExperimentalFeaturesEnabled()) {
default_feature_name_map.Set(
"cookie", mojom::FeaturePolicyFeature::kDocumentCookie);
......@@ -202,12 +209,6 @@ const FeatureNameMap& GetDefaultFeatureNameMap() {
"domain", mojom::FeaturePolicyFeature::kDocumentDomain);
default_feature_name_map.Set("docwrite",
mojom::FeaturePolicyFeature::kDocumentWrite);
default_feature_name_map.Set("sync-script",
mojom::FeaturePolicyFeature::kSyncScript);
default_feature_name_map.Set("unsized-media",
mojom::FeaturePolicyFeature::kUnsizedMedia);
default_feature_name_map.Set(
"vertical-scroll", mojom::FeaturePolicyFeature::kVerticalScroll);
}
if (RuntimeEnabledFeatures::FeaturePolicyAutoplayFeatureEnabled()) {
default_feature_name_map.Set("autoplay",
......
......@@ -425,6 +425,14 @@
origin_trial_feature_name: "ExperimentalHardwareEchoCancellation",
status: "experimental",
},
// Enables a set of features intended to help improve web developer
// productivity, by restricting the use of potentially problematic web-
// platform behaviors, as well as adding new high-level APIs for common
// development patterns.
{
name: "ExperimentalProductivityFeatures",
status: "experimental"
},
{
name: "ExperimentalV8Extras",
status: "experimental",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment