blob: 5c8f97ad2eef22a41dc48618e8fe53b913c259a4 [file] [log] [blame]
{
"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s",
"test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s.%(source_scheme)s.html",
"excluded_tests": [
{
// Workers are same-origin only
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
"subresource": [
"worker-classic",
"worker-module",
"sharedworker-classic",
"sharedworker-module"
],
"origin": [
"cross-https",
"cross-http",
"cross-http-downgrade",
"cross-wss",
"cross-ws",
"cross-ws-downgrade"
],
"expectation": "*"
},
{
// Workers are same-origin only (redirects)
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": [
"swap-origin",
"swap-scheme"
],
"subresource": [
"worker-classic",
"worker-module",
"sharedworker-classic",
"sharedworker-module"
],
"origin": "*",
"expectation": "*"
},
{
// Websockets are ws/wss-only
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
"subresource": "websocket",
"origin": [
"same-https",
"same-http",
"same-http-downgrade",
"cross-https",
"cross-http",
"cross-http-downgrade"
],
"expectation": "*"
},
{
// Redirects are intentionally forbidden in browsers:
// https://fetch.spec.whatwg.org/#concept-websocket-establish
// Websockets are no-redirect only
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": [
"keep-origin",
"swap-origin",
"keep-scheme",
"swap-scheme",
"downgrade"
],
"subresource": "websocket",
"origin": "*",
"expectation": "*"
},
{
// ws/wss are websocket-only
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
"subresource": [
"area-tag",
"a-tag",
"fetch",
"iframe-tag",
"img-tag",
"script-tag",
"sharedworker-classic",
"sharedworker-import",
"sharedworker-import-data",
"sharedworker-module",
"worker-classic",
"worker-import",
"worker-import-data",
"worker-module",
"worklet-animation",
"worklet-animation-import-data",
"worklet-audio",
"worklet-audio-import-data",
"worklet-layout",
"worklet-layout-import-data",
"worklet-paint",
"worklet-paint-import-data",
"xhr"
],
"origin": [
"same-wss",
"same-ws",
"same-ws-downgrade",
"cross-wss",
"cross-ws",
"cross-ws-downgrade"
],
"expectation": "*"
}
],
"source_context_schema": {
"supported_subresource": {
"top": "*",
"iframe": "*",
"iframe-blank": "*",
"srcdoc": "*",
"worker-classic": [
"xhr",
"fetch",
"websocket",
"worker-classic",
"worker-module"
],
"worker-module": [
"xhr",
"fetch",
"websocket",
"worker-classic",
"worker-module"
],
"worker-classic-data": [
"xhr",
"fetch",
"websocket"
],
"worker-module-data": [
"xhr",
"fetch",
"websocket"
],
"sharedworker-classic": [
"xhr",
"fetch",
"websocket"
],
"sharedworker-module": [
"xhr",
"fetch",
"websocket"
],
"sharedworker-classic-data": [
"xhr",
"fetch",
"websocket"
],
"sharedworker-module-data": [
"xhr",
"fetch",
"websocket"
]
}
},
"source_context_list_schema": {
// Warning: Currently, some nested patterns of contexts have different
// inheritance rules for different kinds of policies.
// The generated tests will be used to test/investigate the policy
// inheritance rules, and eventually the policy inheritance rules will
// be unified (https://github.com/w3ctag/design-principles/issues/111).
"top": {
"description": "Policy set by the top-level Document",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"req": {
"description": "Subresource request's policy should override Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
}
],
"subresourcePolicyDeliveries": [
"nonNullPolicy"
]
},
"srcdoc-inherit": {
"description": "srcdoc iframe without its own policy should inherit parent Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "srcdoc"
}
],
"subresourcePolicyDeliveries": []
},
"srcdoc": {
"description": "srcdoc iframe's policy should override parent Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
},
{
"sourceContextType": "srcdoc",
"policyDeliveries": [
"nonNullPolicy"
]
}
],
"subresourcePolicyDeliveries": []
},
"iframe": {
"description": "external iframe's policy should override parent Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
},
{
"sourceContextType": "iframe",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"iframe-blank-inherit": {
"description": "blank iframe should inherit parent Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "iframe-blank"
}
],
"subresourcePolicyDeliveries": []
},
"worker-classic": {
// This is applicable to referrer-policy tests.
// Use "worker-classic-inherit" for CSP (mixed-content, etc.).
"description": "dedicated workers shouldn't inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
},
{
"sourceContextType": "worker-classic",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"worker-classic-inherit": {
// This is applicable to upgrade-insecure-requests and mixed-content tests.
// Use "worker-classic" for referrer-policy.
"description": "dedicated workers should inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "worker-classic",
"policyDeliveries": [
"anotherPolicy"
]
}
],
"subresourcePolicyDeliveries": []
},
"worker-classic-data": {
"description": "data: dedicated workers should inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "worker-classic-data",
"policyDeliveries": []
}
],
"subresourcePolicyDeliveries": []
},
"worker-module": {
// This is applicable to referrer-policy tests.
// Use "worker-module-inherit" for CSP (mixed-content, etc.).
"description": "dedicated workers shouldn't inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
},
{
"sourceContextType": "worker-module",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"worker-module-inherit": {
// This is applicable to upgrade-insecure-requests and mixed-content tests.
// Use "worker-module" for referrer-policy.
"description": "dedicated workers should inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "worker-module",
"policyDeliveries": [
"anotherPolicy"
]
}
],
"subresourcePolicyDeliveries": []
},
"worker-module-data": {
"description": "data: dedicated workers should inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "worker-module-data",
"policyDeliveries": []
}
],
"subresourcePolicyDeliveries": []
},
"sharedworker-classic": {
"description": "shared workers shouldn't inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
},
{
"sourceContextType": "sharedworker-classic",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"sharedworker-classic-data": {
"description": "data: shared workers should inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "sharedworker-classic-data",
"policyDeliveries": []
}
],
"subresourcePolicyDeliveries": []
},
"sharedworker-module": {
"description": "shared workers shouldn't inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"anotherPolicy"
]
},
{
"sourceContextType": "sharedworker-module",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"sharedworker-module-data": {
"description": "data: shared workers should inherit its parent's policy.",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "sharedworker-module-data",
"policyDeliveries": []
}
],
"subresourcePolicyDeliveries": []
}
},
"test_expansion_schema": {
"expansion": [
"default",
"override"
],
"source_scheme": [
"http",
"https"
],
"source_context_list": [
"top",
"req",
"srcdoc-inherit",
"srcdoc",
"iframe",
"iframe-blank-inherit",
"worker-classic",
"worker-classic-inherit",
"worker-classic-data",
"worker-module",
"worker-module-inherit",
"worker-module-data",
"sharedworker-classic",
"sharedworker-classic-data",
"sharedworker-module",
"sharedworker-module-data"
],
"redirection": [
"no-redirect",
"keep-origin",
"swap-origin",
"keep-scheme",
"swap-scheme",
"downgrade"
],
"origin": [
"same-https",
"same-http",
"same-http-downgrade",
"cross-https",
"cross-http",
"cross-http-downgrade",
"same-wss",
"same-ws",
"same-ws-downgrade",
"cross-wss",
"cross-ws",
"cross-ws-downgrade"
],
"subresource": [
"a-tag",
"area-tag",
"audio-tag",
"beacon",
"fetch",
"iframe-tag",
"img-tag",
"link-css-tag",
"link-prefetch-tag",
"object-tag",
"picture-tag",
"script-tag",
"sharedworker-classic",
"sharedworker-import",
"sharedworker-import-data",
"sharedworker-module",
"video-tag",
"websocket",
"worker-classic",
"worker-import",
"worker-import-data",
"worker-module",
"worklet-animation",
"worklet-animation-import-data",
"worklet-audio",
"worklet-audio-import-data",
"worklet-layout",
"worklet-layout-import-data",
"worklet-paint",
"worklet-paint-import-data",
"xhr"
]
}
}