<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>master frame for event storage propagation</title> <script type="text/javascript" src="interOriginFrame.js"></script> <script type="text/javascript"> var currentStep = 1; var gotEvent = false; window.addEventListener("storage", function(event) { gotEvent = true; }, false); function doStep() { switch (currentStep) { // In step 2 we instantiate sessionStorage in the other frame case 1: // Must not fire (storage must be clear!) sessionStorage.clear(); // Must fire X:null->'1' sessionStorage.setItem("X", "1"); // Must fire X:'1'->'2' sessionStorage.setItem("X", "2"); // Must not fire sessionStorage.setItem("X", "2"); // Must fire X:'2'->null sessionStorage.removeItem("X"); // Must not fire sessionStorage.removeItem("X"); // Must not fire sessionStorage.removeItem("Y"); // Must fire X:null->'2' (we need something in the storage) sessionStorage.setItem("X", "2"); // Must fire null:null->null (one item has been erased) sessionStorage.clear(); // Must not fire sessionStorage.clear(); break; // Wait some time to let the async event be propagated case 11: is(gotEvent, false, "Expected no events"); return finishTest(); } // Increase by two to distinguish each test step order // in both master doStep and slave doStep functions. ++currentStep; ++currentStep; return true; } </script> </head> <body onload="postMsg('frame loaded');"> <iframe src="http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveEqual.html" name="slaveFrame"> </iframe> </body> </html>