blob: bd3f6634d80bed62b3ed02abe9303982369bfb91 [file] [log] [blame]
{
// All feature policy (https://github.com/w3c/webappsec-feature-policy)
// features are defined here.
// All Features have to be defined in FeaturePolicyFeature enum as well
// (defined in third_party/blink/public/mojom/feature_policy/feature_policy.mojom).
// The enum value has to have the same name as the feature name here.
// This list is used to generate "feature_policy_helper.cc".
// TODO(yashard): Add all feature policy features here.
parameters: {
// "depends_on" specifies relationship to runtime features defined
// in "runtime_enabled_features.json5":
// depends_on: ["feature1", "feature2", ...]
// * If the depends_on features are *only* runtime features, the feature is
// available if any of the runtime features are enabled.
// * If the depends_on list includes origin trial features, the feature is
// available if any of the origin trial features are enabled.
depends_on: {
default: [],
valid_type: "list",
},
// feature_policy_name: "FEATURE_NAME" is used to specify the policy name
// which gets parsed from the header or the allow attribute.
feature_policy_name: {
},
// feature_default: Default allowlist state for feature. This corresponds
// to enum class |FeaturePolicyFeatureDefault| in
// public/common/feature_policy/feature_policy_features.h
feature_default: {
default: "EnableForSelf",
valid_values: ["EnableForAll", "EnableForSelf"]
}
},
data: [
{
name: "Accelerometer",
feature_policy_name: "accelerometer",
},
{
name: "AmbientLightSensor",
feature_policy_name: "ambient-light-sensor",
depends_on: ["SensorExtraClasses"],
},
{
name: "Autoplay",
feature_policy_name: "autoplay",
},
{
name: "Camera",
feature_policy_name: "camera",
},
{
name: "ClientHintDPR",
feature_policy_name: "ch-dpr",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintDeviceMemory",
feature_policy_name: "ch-device-memory",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintDownlink",
feature_policy_name: "ch-downlink",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintECT",
feature_policy_name: "ch-ect",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintLang",
feature_policy_name: "ch-lang",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintRTT",
feature_policy_name: "ch-rtt",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUA",
feature_policy_name: "ch-ua",
feature_default: "EnableForAll",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUAArch",
feature_policy_name: "ch-ua-arch",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUAPlatform",
feature_policy_name: "ch-ua-platform",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUAModel",
feature_policy_name: "ch-ua-model",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUAMobile",
feature_policy_name: "ch-ua-mobile",
feature_default: "EnableForAll",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUAFullVersion",
feature_policy_name: "ch-ua-full-version",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintUAPlatformVersion",
feature_policy_name: "ch-ua-platform-version",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintViewportWidth",
feature_policy_name: "ch-viewport-width",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClientHintWidth",
feature_policy_name: "ch-width",
depends_on: ["FeaturePolicyForClientHints"],
},
{
name: "ClipboardRead",
feature_policy_name: "clipboard-read",
},
{
name: "ClipboardWrite",
feature_policy_name: "clipboard-write",
},
{
name: "ConversionMeasurement",
feature_policy_name: "conversion-measurement",
depends_on: ["ConversionMeasurement"],
},
{
name: "CrossOriginIsolated",
feature_policy_name: "cross-origin-isolated",
depends_on: ["CrossOriginIsolation"],
},
{
name: "DisplayCapture",
feature_policy_name: "display-capture",
depends_on: ["GetCurrentBrowsingContextMedia"],
},
{
name: "DocumentDomain",
feature_policy_name: "document-domain",
feature_default: "EnableForAll",
},
{
name: "EncryptedMedia",
feature_policy_name: "encrypted-media",
},
{
name: "ExecutionWhileOutOfViewport",
feature_policy_name: "execution-while-out-of-viewport",
feature_default: "EnableForAll",
depends_on: ["FreezeFramesOnVisibility"],
},
{
name: "ExecutionWhileNotRendered",
feature_policy_name: "execution-while-not-rendered",
feature_default: "EnableForAll",
depends_on: ["FreezeFramesOnVisibility"],
},
{
name: "FocusWithoutUserActivation",
feature_policy_name: "focus-without-user-activation",
feature_default: "EnableForAll",
depends_on: ["BlockingFocusWithoutUserActivation"],
},
{
name: "Fullscreen",
feature_policy_name: "fullscreen",
},
{
name: "Frobulate",
feature_policy_name: "frobulate",
depends_on: ["OriginTrialsSampleAPI"],
},
{
name: "Gamepad",
feature_policy_name: "gamepad",
depends_on: ["RestrictGamepadAccess"],
},
{
name: "Geolocation",
feature_policy_name: "geolocation",
},
{
name: "Gyroscope",
feature_policy_name: "gyroscope",
},
{
name: "Hid",
feature_policy_name: "hid",
depends_on: ["WebHID"],
},
{
name: "IdleDetection",
feature_policy_name: "idle-detection",
depends_on: ["IdleDetection"],
},
{
name: "InterestCohort",
feature_policy_name: "interest-cohort",
feature_default: "EnableForAll",
depends_on: ["InterestCohortFeaturePolicy"],
},
{
name: "Magnetometer",
feature_policy_name: "magnetometer",
},
{
name: "Microphone",
feature_policy_name: "microphone",
},
{
name: "MidiFeature",
feature_policy_name: "midi",
},
{
name: "OTPCredentials",
feature_policy_name: "otp-credentials",
depends_on: ["WebOTPAssertionFeaturePolicy"],
},
{
name: "Payment",
feature_policy_name: "payment",
depends_on: ["PaymentRequest"],
},
{
name: "PictureInPicture",
feature_policy_name: "picture-in-picture",
feature_default: "EnableForAll",
depends_on: ["PictureInPictureAPI"],
},
{
name: "PublicKeyCredentialsGet",
feature_policy_name: "publickey-credentials-get",
depends_on: ["WebAuthenticationGetAssertionFeaturePolicy"],
},
{
name: "ScreenWakeLock",
feature_policy_name: "screen-wake-lock",
depends_on: ["WakeLock"],
},
{
name: "Serial",
feature_policy_name: "serial",
depends_on: ["Serial"],
},
{
name: "StorageAccessAPI",
feature_default: "EnableForAll",
feature_policy_name: "storage-access-api",
depends_on: ["StorageAccessAPI"],
},
{
name: "SyncXHR",
feature_default: "EnableForAll",
feature_policy_name: "sync-xhr",
},
{
name: "TrustTokenRedemption",
feature_policy_name: "trust-token-redemption",
depends_on: ["TrustTokens"],
},
{
name: "Usb",
feature_policy_name: "usb",
depends_on: ["WebUSB"],
},
{
name: "VerticalScroll",
feature_policy_name: "vertical-scroll",
feature_default: "EnableForAll",
depends_on: ["ExperimentalPolicies"],
},
{
name: "WebShare",
feature_policy_name: "web-share",
depends_on: ["WebShare"],
},
{
name: "WebXr",
feature_policy_name: "xr-spatial-tracking",
depends_on: ["WebXR"],
},
],
}