tools/page-loader/echo.pl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 #!/usr/bin/perl
     2 # 
     3 # This Source Code Form is subject to the terms of the Mozilla Public
     4 # License, v. 2.0. If a copy of the MPL was not distributed with this
     5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6 use Time::HiRes qw(gettimeofday tv_interval);
     8 sub encodeHiResTime {
     9     my $timeref = shift;
    10     return unless ref($timeref);
    11     my $time = $$timeref[0] . "-" . $$timeref[1];    
    12     return $time;
    13 }
    15 my $time = encodeHiResTime([gettimeofday()]);
    17 print "Content-type: text/html\n\n";
    18 print <<"ENDOFHTML";
    19 <html>
    20 <head>
    21 <script>
    23 var gServerTime = '$time';
    25 function tokenizeQuery() {
    26   var query = {};
    27   var pairs = document.location.search.substring(1).split('&');
    28   for (var i=0; i < pairs.length; i++) {
    29     var pair = pairs[i].split('=');
    30     query[pair[0]] = unescape(pair[1]);
    31   }
    32   return query;
    33 }
    35 function setLocationHref(aHref, aReplace) {
    36     if (aReplace)
    37       document.location.replace(aHref);
    38     else
    39       document.location.href = aHref;
    40 }
    42 var gHref;
    43 function doNextRequest(aTime) {
    44     function getValue(arg,def) {
    45         return !isNaN(arg) ? parseInt(Number(arg)) : def;
    46     }
    47     var q = tokenizeQuery();
    48     var delay    = getValue(q['delay'],    0);
    50     var now     = (new Date()).getTime();
    51     var c_intvl = now - c_ts;
    52     var c_ts    = now + delay; // adjust for delay time
    53     // Now make the request ...
    54     if (q['url']) {
    55         gHref = q['url'] +              
    56             "?c_part="  + -1 +    // bogo request is not recorded                      
    57             "&index="   + 0 +              
    58             "&id="      + q['id'] +                              
    59             "&maxcyc="  + q['maxcyc'] + 
    60             "&replace=" + q['replace'] +     
    61             "&nocache=" + q['nocache'] +  
    62             "&delay="   + delay +       
    63             "&timeout=" + q['timeout'] +       
    64             "&c_intvl=" + c_intvl +           
    65             "&s_ts="    + gServerTime +  
    66             "&c_ts="    + c_ts;                         
    67         window.setTimeout("setLocationHref(gHref,false);", delay);    
    68         return true; 
    69     }
    70 }
    72 function startTest() {
    73   if (window.innerHeight && window.innerWidth) {
    74     // force a consistent region for layout and painting.
    75     window.innerWidth=820;
    76     window.innerHeight=620;
    77   }
    78   doNextRequest(0);
    79 }
    81 window.setTimeout("startTest()", 1000);
    83 </script>
    84 </head>
    85 <body>
    86   <p>
    87     This page starts the test.
    88   </p>
    89   <p>
    90     dummy page dummy page dummy page dummy page dummy page dummy page 
    91     dummy page dummy page dummy page dummy page dummy page dummy page 
    92     dummy page dummy page dummy page dummy page dummy page dummy page 
    93     dummy page dummy page dummy page dummy page dummy page dummy page 
    94   </p>
    95   <p>
    96     dummy page dummy page dummy page dummy page dummy page dummy page 
    97     dummy page dummy page dummy page dummy page dummy page dummy page 
    98     dummy page dummy page dummy page dummy page dummy page dummy page 
    99     dummy page dummy page dummy page dummy page dummy page dummy page 
   100   </p>
   101   <p>
   102     dummy page dummy page dummy page dummy page dummy page dummy page 
   103     dummy page dummy page dummy page dummy page dummy page dummy page 
   104     dummy page dummy page dummy page dummy page dummy page dummy page 
   105     dummy page dummy page dummy page dummy page dummy page dummy page 
   106   </p>
   107 </body>
   108 </html>
   110 ENDOFHTML
   112 exit 0;

mercurial