Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <title>slave for storage event propagation</title>
5 <script type="text/javascript" src="interOriginFrame.js"></script>
6 <script type="text/javascript">
8 var currentStep = 2;
10 var events = [];
12 window.addEventListener("storage", function(event)
13 {
14 events.push(event);
15 }, false);
17 function doStep()
18 {
19 function checkEvent(expectedKey, expectedOldValue, expectedNewValue)
20 {
21 var event = events.shift();
22 is(event.key, expectedKey, "key name check");
23 is(event.oldValue, expectedOldValue, "old value check");
24 is(event.newValue, expectedNewValue, "new value check");
25 is(event.url, "http://example.com/tests/dom/tests/mochitest/storageevent/frameLocalStorageMaster.html");
26 ok(event.storageArea);
27 }
29 switch (currentStep)
30 {
31 case 10:
32 is(events.length, 5, "Expected 5 events");
33 checkEvent("X", null, "1");
34 checkEvent("X", "1", "2");
35 checkEvent("X", "2", null);
36 checkEvent("X", null, "2");
37 checkEvent(null, null, null);
38 break;
39 }
41 // Increase by two to distinguish each test step order
42 // in both master doStep and slave doStep functions.
43 ++currentStep;
44 ++currentStep;
46 return true;
47 }
49 </script>
51 </head>
53 <body onload="postMsg('frame loaded');">
54 </body>
55 </html>