load_img.sub.js (1273B)
1 // Poll the server for the test result. 2 async function get_stashed_topics_header(url) { 3 for (let i = 0; i < 30; ++i) { 4 const response = await fetch(url + '&query'); 5 let stashed_topics_header = await response.text(); 6 7 if (!stashed_topics_header || (stashed_topics_header === 'NO_PREVIOUS_REQUEST')) { 8 await new Promise(resolve => step_timeout(resolve, 100)); 9 continue; 10 } 11 return stashed_topics_header; 12 } 13 assert_true(false, 'timeout'); 14 } 15 16 // Load an image and poll for the topics header that 17 // check-topics-request-header-in-img.py should stash. 18 function load_topics_image(has_browsing_topics_attribute, is_same_origin) { 19 let stash_id = token(); 20 const sameOriginSrc = `/browsing-topics/resources/` + 21 `check-topics-request-header-in-img.py?token=${stash_id}`; 22 const crossOriginSrc = 'https://{{domains[www]}}:{{ports[https][0]}}' + 23 sameOriginSrc; 24 25 const url = is_same_origin ? sameOriginSrc : crossOriginSrc 26 27 let image = document.createElement('img'); 28 image.src = url; 29 30 if (has_browsing_topics_attribute) { 31 image.browsingTopics = true; 32 } 33 34 image.decode().then(() => { 35 document.body.appendChild(image); 36 }); 37 38 return get_stashed_topics_header(url); 39 }