tor-browser

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

frameSessionStorageMasterEqual.html (1768B)


      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    // In step 2 we instantiate sessionStorage in the other frame
     21    case 1:
     22      // Must not fire (storage must be clear!)
     23      sessionStorage.clear();
     24      // Must fire X:null->'1'
     25      sessionStorage.setItem("X", "1");
     26      // Must fire X:'1'->'2'
     27      sessionStorage.setItem("X", "2");
     28      // Must not fire
     29      sessionStorage.setItem("X", "2");
     30      // Must fire X:'2'->null
     31      sessionStorage.removeItem("X");
     32      // Must not fire
     33      sessionStorage.removeItem("X");
     34      // Must not fire
     35      sessionStorage.removeItem("Y");
     36      // Must fire X:null->'2' (we need something in the storage)
     37      sessionStorage.setItem("X", "2");
     38      // Must fire null:null->null (one item has been erased)
     39      sessionStorage.clear();
     40      // Must not fire
     41      sessionStorage.clear();
     42      break;
     43 
     44    // Wait some time to let the async event be propagated
     45    case 11:
     46      is(gotEvent, false, "Expected no events");
     47      return finishTest();
     48  }
     49 
     50  // Increase by two to distinguish each test step order
     51  // in both master doStep and slave doStep functions.
     52  ++currentStep;
     53  ++currentStep;
     54 
     55  return true;
     56 }
     57 
     58 </script>
     59 
     60 </head>
     61 
     62 <body onload="postMsg('frame loaded', 'http://mochi.test:8888');">
     63  <iframe src="http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveEqual.html"
     64          name="slaveFrame">
     65  </iframe>
     66 </body>
     67 </html>