tor-browser

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

frameSessionStorageMasterNotEqual.html (1758B)


      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      sessionStorage.clear();
     23      // Must fire X:null->'1'
     24      sessionStorage.setItem("X", "1");
     25      // Must fire X:'1'->'2'
     26      sessionStorage.setItem("X", "2");
     27      // Must not fire
     28      sessionStorage.setItem("X", "2");
     29      // Must fire X:'2'->null
     30      sessionStorage.removeItem("X");
     31      // Must not fire
     32      sessionStorage.removeItem("X");
     33      // Must not fire
     34      sessionStorage.removeItem("Y");
     35      // Must fire X:null->'2' (we need something in the storage)
     36      sessionStorage.setItem("X", "2");
     37      // Must fire null:null->null (one item has been erased)
     38      sessionStorage.clear();
     39      // Must not fire
     40      sessionStorage.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 function startTest() {
     58  postMsg('frame loaded', 'http://mochi.test:8888');
     59  slaveFrame.location =
     60    "http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveNotEqual.html";
     61 }
     62 
     63 </script>
     64 
     65 </head>
     66 
     67 <body onload="startTest();">
     68  <iframe name="slaveFrame"></iframe>
     69 </body>
     70 </html>