docshell/test/file_bug475636.sjs

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

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 }

mercurial