39 lines
No EOL
1.2 KiB
JavaScript
39 lines
No EOL
1.2 KiB
JavaScript
// Poll the server for the test result.
|
|
async function get_stashed_topics_header(url) {
|
|
for (let i = 0; i < 30; ++i) {
|
|
const response = await fetch(url + '&query');
|
|
let stashed_topics_header = await response.text();
|
|
|
|
if (!stashed_topics_header || (stashed_topics_header === 'NO_PREVIOUS_REQUEST')) {
|
|
await new Promise(resolve => step_timeout(resolve, 100));
|
|
continue;
|
|
}
|
|
return stashed_topics_header;
|
|
}
|
|
assert_true(false, 'timeout');
|
|
}
|
|
|
|
// Load an image and poll for the topics header that
|
|
// check-topics-request-header-in-img.py should stash.
|
|
function load_topics_image(has_browsing_topics_attribute, is_same_origin) {
|
|
let stash_id = token();
|
|
const sameOriginSrc = `/browsing-topics/resources/` +
|
|
`check-topics-request-header-in-img.py?token=${stash_id}`;
|
|
const crossOriginSrc = 'https://{{domains[www]}}:{{ports[https][0]}}' +
|
|
sameOriginSrc;
|
|
|
|
const url = is_same_origin ? sameOriginSrc : crossOriginSrc
|
|
|
|
let image = document.createElement('img');
|
|
image.src = url;
|
|
|
|
if (has_browsing_topics_attribute) {
|
|
image.browsingTopics = true;
|
|
}
|
|
|
|
image.decode().then(() => {
|
|
document.body.appendChild(image);
|
|
});
|
|
|
|
return get_stashed_topics_header(url);
|
|
} |