dom/tests/mochitest/storageevent/frameSessionStorageMasterEqual.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <html xmlns="http://www.w3.org/1999/xhtml">
     2 <head>
     3 <title>master frame for event storage propagation</title>
     5 <script type="text/javascript" src="interOriginFrame.js"></script>
     6 <script type="text/javascript">
     8 var currentStep = 1;
     9 var gotEvent = false;
    11 window.addEventListener("storage", function(event)
    12 {
    13   gotEvent = true;
    14 }, false);
    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;
    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   }
    50   // Increase by two to distinguish each test step order
    51   // in both master doStep and slave doStep functions.
    52   ++currentStep;
    53   ++currentStep;
    55   return true;
    56 }
    58 </script>
    60 </head>
    62 <body onload="postMsg('frame loaded');">
    63   <iframe src="http://example.com:80/tests/dom/tests/mochitest/storageevent/frameSessionStorageSlaveEqual.html"
    64           name="slaveFrame">
    65   </iframe>
    66 </body>
    67 </html>

mercurial