1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45

content / test / data / prerender / session_storage.html [blame]

<!DOCTYPE html>
<html>
<head>
<script src="test_utils.js"></script>
<script>
  function clickSameSiteNewWindowLink() {
    const element = document.getElementById('same_site_new_window_link');
    element.click();
  }

  function getSessionStorageKeys() {
    const keys = [];
    let txt = '';
    for (let i = 0; i < sessionStorage.length; ++i) {
      keys.push(sessionStorage.key(i));
    }
    keys.sort();
    keys.forEach((key) => {
      if (txt.length) {
        txt += ', ';
      }
      txt += key;
    });
    return txt;
  }

  const params = new URLSearchParams(location.search);
  const isPrerendering = params.has('prerendering');
  if (isPrerendering) {
    sessionStorage.setItem('prerendering', '1');
    window.sessionKeysInPrerenderingchange = new Promise((resolve) => {
      document.addEventListener('prerenderingchange', () => {
        resolve(getSessionStorageKeys());
        sessionStorage.setItem('activated', '1');
      });
    });
  } else {
    sessionStorage.setItem('initial', '1');
  }
</script>
</head>
<body>
<a href="session_storage.html?prerendering=" id="same_site_new_window_link" target="_blank">same-site new window</a>
</body>
</html>