tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }