CLOSED TREE: TraceMonkey merge head. (a=blockers)
[mozilla-central.git] / docshell / test / file_bug475636.sjs
blob38da6a6a50d5f568ed3fdbcc1bec606a7a162e92
1 jsURL = "javascript:" + escape('window.parent.postMessage("JS uri ran", "*");\
2 return \'\
3 <script>\
4 window.parent.postMessage("Able to access private: " +\
5   window.parent.private, "*");\
6 </script>\'');
7 dataURL = "data:text/html," + escape('<!DOCTYPE HTML>\
8 <script>\
9 try {\
10   window.parent.postMessage("Able to access private: " +\
11     window.parent.private, "*");\
13 catch (e) {\
14   window.parent.postMessage("pass", "*");\
16 </script>');
18 tests = [
19 // Plain document should work as normal
20 '<!DOCTYPE HTML>\
21 <script>\
22 try {\
23   window.parent.private;\
24   window.parent.postMessage("pass", "*");\
26 catch (e) {\
27   window.parent.postMessage("Unble to access private", "*");\
29 </script>',
31 // refresh to plain doc
32 { refresh: "file_bug475636.sjs?1",
33   doc: '<!DOCTYPE HTML>' },
35 // meta-refresh to plain doc
36 '<!DOCTYPE HTML>\
37 <head>\
38   <meta http-equiv="refresh" content="0; url=file_bug475636.sjs?1">\
39 </head>',
41 // refresh to data url
42 { refresh: dataURL,
43   doc: '<!DOCTYPE HTML>' },
45 // meta-refresh to data url
46 '<!DOCTYPE HTML>\
47 <head>\
48   <meta http-equiv="refresh" content="0; url=' + dataURL + '">\
49 </head>',
51 // refresh to js url should not be followed
52 { refresh: jsURL,
53   doc:
54 '<!DOCTYPE HTML>\
55 <script>\
56 setTimeout(function() {\
57   window.parent.postMessage("pass", "*");\
58 }, 2000);\
59 </script>' },
61 // meta refresh to js url should not be followed
62 '<!DOCTYPE HTML>\
63 <head>\
64   <meta http-equiv="refresh" content="0; url=' + jsURL + '">\
65 </head>\
66 <script>\
67 setTimeout(function() {\
68   window.parent.postMessage("pass", "*");\
69 }, 2000);\
70 </script>'
74 function handleRequest(request, response)
76   dump("@@@@@@@@@hi there: " + request.queryString + "\n");
77   test = tests[parseInt(request.queryString, 10) - 1];
78   response.setHeader("Content-Type", "text/html");
80   if (!test) {
81     response.write('<script>parent.postMessage("done", "*");</script>');
82   }
83   else if (typeof test == "string") {
84     response.write(test);
85   }
86   else if (test.refresh) {
87     response.setHeader("Refresh", "0; url=" + test.refresh);
88     response.write(test.doc);
89   }