зеркало из https://github.com/mozilla/gecko-dev.git
64 строки
1.5 KiB
HTML
64 строки
1.5 KiB
HTML
<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)
|
|
{
|
|
case 1:
|
|
// Must not fire (storage must be clear!)
|
|
localStorage.clear();
|
|
// Must fire X:null->'1'
|
|
localStorage.setItem("X", "1");
|
|
// Must fire X:'1'->'2'
|
|
localStorage.setItem("X", "2");
|
|
// Must not fire
|
|
localStorage.setItem("X", "2");
|
|
// Must fire X:'2'->null
|
|
localStorage.removeItem("X");
|
|
// Must not fire
|
|
localStorage.removeItem("X");
|
|
// Must not fire
|
|
localStorage.removeItem("Y");
|
|
// Must fire X:null->'2' (we need something in the storage)
|
|
localStorage.setItem("X", "2");
|
|
// Must fire null:null->null (one item has been erased)
|
|
localStorage.clear();
|
|
// Must not fire
|
|
localStorage.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');">
|
|
</body>
|
|
</html>
|