blob: d11c8233d125ac05db1edf7071309934fc336269 [file] [log] [blame]
{
// All document policy (https://w3c.github.io/webappsec-feature-policy/document-policy.html)
// features are defined here.
// All Features have to be defined in DocumentPolicyFeature enum as well
// (defined in third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom).
// The enum value has to have the same name as the feature name here.
parameters: {
// document_policy_name: "FEATURE_NAME" is used to specify the policy name
// which gets parsed from the header or the policy attribute.
document_policy_name: {},
// value type allowed in mojom::PolicyValueType which is defined in
// third_party/blink/public/mojom/feature_policy/policy_value.mojom.
value_type: {},
// valid c++ expression strings, e.g. true/false, 1.0, -1.
// or use reserved keyword 'min'/'max'.
default_value: {},
// "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",
},
// "default_value_behind_flag" specifies default_value override values
// based on different runtime flags set.
//
// When multiple flags are set, default_value correspond to the first
// flag in the list will be used, e.g.
// default_value_behind_flag: [
// ["A", 1.0],
// ["B", 2.0],
// ]
// 1.0 will be used as default value when both flag A and B are set.
//
// Note: the runtime flags here refer to features defined in
// "third_party/blink/public/common/features.h", instead of those defined in
// "runtime_enabled_features.json5" because the latter is only available
// on renderer side, while default_value is needed from browser side as
// well.
default_value_behind_flag: {
default: [],
valid_type: "list",
}
},
data: [
{
name: "Default",
document_policy_name: "*",
value_type: "Bool",
default_value: "true",
depends_on: []
},
{
name: "FontDisplay",
document_policy_name: "font-display-late-swap",
value_type: "Bool",
default_value: "true",
depends_on: ["ExperimentalPolicies"],
},
{
name: "LosslessImagesMaxBpp",
document_policy_name: "lossless-images-max-bpp",
value_type: "DecDouble",
default_value: "max",
depends_on: ["ExperimentalPolicies"],
},
{
// The ForceLoadAtTop policy lets pages opt-out of scrolling that
// automatically happens on page load. This includes fragment scrolls,
// text fragment scrolls (i.e. this provides an opt-out for the Scroll To
// Text feature), and scroll restoration.
name: "ForceLoadAtTop",
document_policy_name: "force-load-at-top",
value_type: "Bool",
default_value: "false",
},
{
name: "LosslessImagesStrictMaxBpp",
document_policy_name: "lossless-images-strict-max-bpp",
value_type: "DecDouble",
default_value: "max",
depends_on: ["ExperimentalPolicies"],
},
{
name: "LossyImagesMaxBpp",
document_policy_name: "lossy-images-max-bpp",
value_type: "DecDouble",
default_value: "max",
depends_on: ["ExperimentalPolicies"],
},
{
name: "OversizedImages",
document_policy_name: "oversized-images",
value_type: "DecDouble",
default_value: "max",
depends_on: ["ExperimentalPolicies"],
},
{
name: "UnsizedMedia",
document_policy_name: "unsized-media",
value_type: "Bool",
default_value: "true",
depends_on: ["ExperimentalPolicies"],
},
{
name: "LayoutAnimations",
document_policy_name: "layout-animations",
value_type: "Bool",
default_value: "true",
depends_on: ["ExperimentalPolicies"],
},
{
name: "DocumentWrite",
document_policy_name: "document-write",
value_type: "Bool",
default_value: "true",
depends_on: ["ExperimentalPolicies"],
},
{
name: "SyncScript",
document_policy_name: "sync-script",
value_type: "Bool",
default_value: "true",
depends_on: ["ExperimentalPolicies"],
},
{
name: "JSProfiling",
document_policy_name: "js-profiling",
value_type: "Bool",
default_value: "false",
depends_on: ["ExperimentalJSProfiler"],
},
{
name: "SyncXHR",
document_policy_name: "sync-xhr",
value_type: "Bool",
default_value: "true",
depends_on: ["DocumentPolicySyncXHR"],
},
{
name: "DocumentDomain",
document_policy_name: "document-domain",
value_type: "Bool",
default_value: "true",
depends_on: ["DocumentPolicyDocumentDomain"],
default_value_behind_flag: [
["DisableDocumentDomainByDefault", "false"],
],
}
],
}