tor-browser

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

session-storage-no-leak-to-initiator-page.html (1215B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="/speculation-rules/prerender/resources/utils.js"></script>
      5 <script src="session-storage-utils.js"></script>
      6 <script>
      7 const params = new URLSearchParams(location.search);
      8 const uid = params.get('uid');
      9 
     10 RunSessionStorageTest(async (isPrerendering, url, prerenderChannel, done) => {
     11  if (!isPrerendering) {
     12    startPrerendering(url);
     13 
     14    // Wait for the message from the prerendering page.
     15    assert_equals(
     16        await getNextMessage(prerenderChannel),
     17        'From prerendering page')
     18 
     19    assert_equals(
     20        getSessionStorageKeys(),
     21        '',
     22        'The session storage item set by the prerendering page must not be ' +
     23        'visible in the initiator page.');
     24 
     25    done();
     26  } else {
     27    sessionStorage.setItem('set by prerendering page', '1');
     28 
     29    assert_equals(
     30        getSessionStorageKeys(),
     31        'set by prerendering page',
     32        'The session storage item must have been added by the prerendering' +
     33        ' page.');
     34    // Send the message to the initiator page.
     35    prerenderChannel.postMessage('From prerendering page');
     36  }
     37 }, uid);
     38 </script>