mirror of https://github.com/nodejs/node.git
534 lines
13 KiB
JSON
534 lines
13 KiB
JSON
{
|
|
"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": [
|
|
"a-tag",
|
|
"area-tag",
|
|
"audio-tag",
|
|
"beacon",
|
|
"fetch",
|
|
"iframe-tag",
|
|
"img-tag",
|
|
"link-css-tag",
|
|
"link-prefetch-tag",
|
|
"object-tag",
|
|
"picture-tag",
|
|
"script-tag",
|
|
"script-tag-dynamic-import",
|
|
"sharedworker-classic",
|
|
"sharedworker-import",
|
|
"sharedworker-import-data",
|
|
"sharedworker-module",
|
|
"video-tag",
|
|
"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": "*"
|
|
},
|
|
{
|
|
// Worklets are HTTPS contexts only
|
|
"expansion": "*",
|
|
"source_scheme": "http",
|
|
"source_context_list": "*",
|
|
"delivery_type": "*",
|
|
"delivery_value": "*",
|
|
"redirection": "*",
|
|
"subresource": [
|
|
"worklet-animation",
|
|
"worklet-animation-import-data",
|
|
"worklet-audio",
|
|
"worklet-audio-import-data",
|
|
"worklet-layout",
|
|
"worklet-layout-import-data",
|
|
"worklet-paint",
|
|
"worklet-paint-import-data"
|
|
],
|
|
"origin": "*",
|
|
"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-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.
|
|
"description": "dedicated workers shouldn't inherit its parent's policy.",
|
|
"sourceContextList": [
|
|
{
|
|
"sourceContextType": "top",
|
|
"policyDeliveries": [
|
|
"anotherPolicy"
|
|
]
|
|
},
|
|
{
|
|
"sourceContextType": "worker-module",
|
|
"policyDeliveries": [
|
|
"policy"
|
|
]
|
|
}
|
|
],
|
|
"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-data",
|
|
"worker-module",
|
|
"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",
|
|
"script-tag-dynamic-import",
|
|
"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"
|
|
]
|
|
}
|
|
}
|