tree 433c6b322f725d55322caf9d954633f27830ae1d
parent 46e85380444eacc080681e66b629114bd3292d5b
author Hiroshige Hayashizaki <hiroshige@chromium.org> 1567537226 -0700
committer Chromium WPT Sync <blink-w3c-test-autoroller@chromium.org> 1567537226 -0700

[DO NOT REVIEW] Move fetch-request,iframe-tag (2)

fix

revert

fix lint

format

[WPT/common/security-features] Support nested source contexts

To enable `spec.src.json` to specify (possibly nested) source contexts,
this CL adds `source_context_list_schema` that represents
source contexts from where subresource requests are sent,
and how policies are delivered (by source contexts or subresource requests).
This CL adds `source_context_list` field to each `test_expansion` entry,
of which value is the key of `source_context_list_schema` to be used.

This CL adds `source_context_schema` and `subresource_schema`
that represent supported delivery types and subresources
for each source context or subresource type. These are used:
- To filter out test files for unsupported combinations of delivery types,
  source contexts and subresources.
  A part of the filtering was removed in
  https://chromium-review.googlesource.com/c/chromium/src/+/1717535
  and this CL re-adds it (in a different form of implementation).
- To determine what delivery types should be used for `anotherPolicy`
  placeholder.

After this CL, the generate.py generates `source_context_list` and
`subresource_policy_deliveries` fields that are passed directly
without coversion.
Specifically,
- The conversion from `classic-data-worker-fetch` to
  `classic-data-worker` + `fetch-request` in mixed-content-test-case.js
  is removed.
- <iframe srcdoc>-related tests for `img-tag` referrer-policy tests
  are split into separate tests, and related code in
  referrer-policy-test-case.sub.js is removed.
  Instead, to support tests inside <iframe srcdoc>, this CL adds
  `referrerSource` calculation that can support <iframe srcdoc>s.

This CL also changes the structure of generated file names.
Now all files are generated under a dedicated directory `gen/`.

This CL creates `test-case.sub.js` instead of modifying
`referrer-policy-test-case.sub.js` etc., because:
  After this CL, I'll commit new generated test HTML files,
  incrementally in order to monitor potential regressions,
  Because thousands of files are modified, split, and renamed.
  During the incremental commits, `test-case.sub.js` is used
  by new generated tests while
  `referrer-policy-test-case.sub.js` etc. are still used by
  old tests.
  After all commits are done, `referrer-policy-test-case.sub.js`
  etc. will be removed.

`test-case.sub.js` reflects renaming of JSON keys and values done
in previous commits.
- opt_in_method -> delivery_type/value
  https://chromium-review.googlesource.com/c/chromium/src/+/1717107
- delivery_method -> delivery_type
   https://chromium-review.googlesource.com/c/chromium/src/+/1716109
- referrer_policy -> delivery_value
  https://chromium-review.googlesource.com/c/chromium/src/+/1717592
- source_protocol -> source_scheme
   https://chromium-review.googlesource.com/c/chromium/src/+/1717115
   https://chromium-review.googlesource.com/c/chromium/src/+/1718991
- target_protocol + origin -> origin
  https://chromium-review.googlesource.com/c/chromium/src/+/1717470
- Use shorter values for origin and redirection
  https://chromium-review.googlesource.com/c/chromium/src/+/1717475
- referrer_url -> expectation
  https://chromium-review.googlesource.com/c/chromium/src/+/1717319

Bug: 906850
Change-Id: Ia6695081e5a93355c29fb1bdb7e89ba6b673261f

Remove fetch-request guard and fix typos

revert sub

Add more validation + rename

more

more

Reorder path

Change-Id: I54db7ac084b96969fb7137959b7308ded7797842
