Skip to content

Commit

Permalink
[WPT] Merge wpt/{referrer-policy,mixed-content}/generic/common.js
Browse files Browse the repository at this point in the history
To merge wpt/{referrer-policy,mixed-content} test frameworks,
this CL merges their common.js.

The new common.js is based on mixed-content's common.js,
with some aspects imported from referrer-policy's common.js:
- Passes results from subresource payloads to resolved promises,
  converting if necessary using wrapResult().
  This is for referrer-policy tests that rely on subresource
  payload to get referrer request headers, while
  mixed-content tests don't use the payload information at all.
- Accepts `additionalAttributes` arguments (to be used to set
  referrer-policy-related attributes to elements).
- Extends bindEvents() to clean up event listeners on completion
  (which is done for some request types in
  referrer-policy's common.js).
- Imports queryImage() (with renaming to
  requestViaImageForReferrerPolicy) from referrer-policy's common.js
  (this should be merged with mixed-content version of
  image requests, but not now).

On mixed-content side:
- expect.py's response for script requests is modified
  because postMessage() is required by referrer-policy's common.js.

On referrer-policy side:
- Move referrer-policy-specific code from common.js
  to referrer-policy-test-case.js, including wrapResult().
- All tests (except for two [1][2]) are converted to promise-based,
  to handle errors correctly.
- Bugs in the remaining two tests [1][2] are fixed.

[1] referrer-policy/generic/iframe-inheritance.html
[2] referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html

Then now
wpt/{referrer-policy,mixed-content}/generic/common.js
are the same.

They are duplicated (i.e. not moved/merged to a single file)
just to avoid mass modification of a large number of
generated files for each step of refactoring,
as these file names are hard-coded there.

Bug: 906850
Change-Id: I39f19d08d658c1a898fc453b621d82a2faaaaf6b
Reviewed-on: https://chromium-review.googlesource.com/c/1455745
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#633917}
  • Loading branch information
hiroshige-g authored and jdm committed Feb 21, 2019
1 parent 8ba5533 commit 767f361
Show file tree
Hide file tree
Showing 46 changed files with 1,333 additions and 623 deletions.
54 changes: 27 additions & 27 deletions fetch/sec-metadata/img.tentative.https.sub.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,18 @@
<script>
// These tests reuse the `referrer-policy` infrastructure to load images that
// encode their request headers in their pixels. Fun stuff!
async_test(t => {
promise_test(() =>
loadImageInWindow(
"https://{{host}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py",
t.step_func_done(img => {
[],
window)
.then(img => {
headers = decodeImageData(extractImageData(img)).headers;
got = {
"dest": headers["sec-fetch-dest"],
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"]
"dest": headers["sec-fetch-dest"],
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"]
};
assert_header_equals(got, {
"dest": "image",
Expand All @@ -25,20 +27,20 @@
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
});
}),
[],
window);
}, "Same-origin image");
"Same-origin image");

async_test(t => {
promise_test(() =>
loadImageInWindow(
"https://{{hosts[][www]}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py",
t.step_func_done(img => {
[],
window)
.then(img => {
headers = decodeImageData(extractImageData(img)).headers;
got = {
"dest": headers["sec-fetch-dest"],
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"]
"dest": headers["sec-fetch-dest"],
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"]
};
assert_header_equals(got, {
"dest": "image",
Expand All @@ -47,20 +49,20 @@
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
});
}),
[],
window);
}, "Same-site image");
"Same-site image");

async_test(t => {
promise_test(() =>
loadImageInWindow(
"https://{{hosts[alt][www]}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py",
t.step_func_done(img => {
[],
window)
.then(img => {
headers = decodeImageData(extractImageData(img)).headers;
got = {
"dest": headers["sec-fetch-dest"],
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"]
"dest": headers["sec-fetch-dest"],
"mode": headers["sec-fetch-mode"],
"site": headers["sec-fetch-site"],
"user": headers["sec-fetch-user"]
};
assert_header_equals(got, {
"dest": "image",
Expand All @@ -69,7 +71,5 @@
"mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin`
});
}),
[],
window);
}, "Cross-site image");
"Cross-site image");
</script>
Loading

0 comments on commit 767f361

Please sign in to comment.