This directory contains the common infrastructure for the following tests.
Subdirectories:
subresource: Serves subresources, with support for redirects, stash, etc. The subresource paths are managed by subresourceMap and fetched in requestVia*() functions in resources/common.js.scope: Serves nested contexts, such as iframe documents or workers. Used from invokeFrom*() functions in resources/common.js.In source_context_list_schema, we can specify
source contexts from where subresource requests are sent, and
how policies are delivered, by source contexts and/or subresource requests.
sourceContextList: an array of SourceContext objects, and
subresourcePolicyDeliveries: an array of PolicyDelivery objects.
They have the same object format as described in common/security-features/resources/common.js comments, and are directly serialized to generated HTML files and passed to JavaScript test code, except that:
sourceContextList's sourceContextType should be always top, which represents the top-level generated test HTML. (This entry is omitted in the JSON passed to JavaScript, but the policy deliveries specified here are written as e.g. <meta> elements in the generated test HTML or HTTP headers)PolicyDelivery object (in sourceContextList or subresourcePolicyDeliveries), following placeholder strings can be used.The keys of source_context_list_schema can be used as the values of source_context_list fields, to indicate which source context configuration to be used.
Each test contains
delivery_key (derived from the top-level delivery_key) anddelivery_value, delivery_type (derived from test_expansion),which represents the target policy delivery, the policy delivery to be tested.
The following placeholder strings in source_context_list_schema can be used:
"policy":"policyIfNonNull":"anotherPolicy":PolicyDelivery object that has a different value from the target policy delivery.For example, when the target policy delivery is {deliveryType: “http-rp”, key: “referrerPolicy”, value: “no-referrer”},
"sourceContextList": [ {"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "classic-worker", "policyDeliveries": ["policy"]} ] is replaced with
"sourceContextList": [ {"sourceContextType": "top", "policyDeliveries": [ {"deliveryType": "meta", "key": "referrerPolicy", "value": "unsafe-url"}] }, {"sourceContextType": "classic-worker", "policyDeliveries": [ {"deliveryType": "http-rp", "key": "referrerPolicy", "value": "no-referrer"}] } ] which indicates
<meta name="referrer" content="unsafe-url">.Referrer-Policy: no-referrer HTTP response headers.source_context_schema and subresource_schemaThese represent supported delivery types and subresources for each source context or subresource type. These are used
anotherPolicy placeholder.