Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
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, "*");\
12 }\
13 catch (e) {\
14 window.parent.postMessage("pass", "*");\
15 }\
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", "*");\
25 }\
26 catch (e) {\
27 window.parent.postMessage("Unble to access private", "*");\
28 }\
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>'
71 ];
74 function handleRequest(request, response)
75 {
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 }
90 }