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>