tor-browser

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

frameLocalStorageMaster.html (1529B)


      1 <html xmlns="http://www.w3.org/1999/xhtml">
      2 <head>
      3 <title>master frame for event storage propagation</title>
      4 
      5 <script type="text/javascript" src="interOriginFrame.js"></script>
      6 <script type="text/javascript">
      7 
      8 var currentStep = 1;
      9 var gotEvent = false;
     10 
     11 window.addEventListener("storage", function(event)
     12 {
     13  gotEvent = true;
     14 });
     15 
     16 function doStep()
     17 {
     18  switch (currentStep)
     19  {
     20    case 1:
     21      // Must not fire (storage must be clear!)
     22      localStorage.clear();
     23      // Must fire X:null->'1'
     24      localStorage.setItem("X", "1");
     25      // Must fire X:'1'->'2'
     26      localStorage.setItem("X", "2");
     27      // Must not fire
     28      localStorage.setItem("X", "2");
     29      // Must fire X:'2'->null
     30      localStorage.removeItem("X");
     31      // Must not fire
     32      localStorage.removeItem("X");
     33      // Must not fire
     34      localStorage.removeItem("Y");
     35      // Must fire X:null->'2' (we need something in the storage)
     36      localStorage.setItem("X", "2");
     37      // Must fire null:null->null (one item has been erased)
     38      localStorage.clear();
     39      // Must not fire
     40      localStorage.clear();
     41      break;
     42 
     43    // Wait some time to let the async event be propagated
     44    case 11:
     45      is(gotEvent, false, "Expected no events");
     46      return finishTest();
     47  }
     48 
     49  // Increase by two to distinguish each test step order
     50  // in both master doStep and slave doStep functions.
     51  ++currentStep;
     52  ++currentStep;
     53 
     54  return true;
     55 }
     56 
     57 </script>
     58 
     59 </head>
     60 
     61 <body onload="postMsg('frame loaded', 'http://mochi.test:8888');">
     62 </body>
     63 </html>