tools/page-loader/echo.pl

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/tools/page-loader/echo.pl	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,112 @@
     1.4 +#!/usr/bin/perl
     1.5 +# 
     1.6 +# This Source Code Form is subject to the terms of the Mozilla Public
     1.7 +# License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.9 +use Time::HiRes qw(gettimeofday tv_interval);
    1.10 +
    1.11 +sub encodeHiResTime {
    1.12 +    my $timeref = shift;
    1.13 +    return unless ref($timeref);
    1.14 +    my $time = $$timeref[0] . "-" . $$timeref[1];    
    1.15 +    return $time;
    1.16 +}
    1.17 +
    1.18 +my $time = encodeHiResTime([gettimeofday()]);
    1.19 +
    1.20 +print "Content-type: text/html\n\n";
    1.21 +print <<"ENDOFHTML";
    1.22 +<html>
    1.23 +<head>
    1.24 +<script>
    1.25 +
    1.26 +var gServerTime = '$time';
    1.27 +
    1.28 +function tokenizeQuery() {
    1.29 +  var query = {};
    1.30 +  var pairs = document.location.search.substring(1).split('&');
    1.31 +  for (var i=0; i < pairs.length; i++) {
    1.32 +    var pair = pairs[i].split('=');
    1.33 +    query[pair[0]] = unescape(pair[1]);
    1.34 +  }
    1.35 +  return query;
    1.36 +}
    1.37 +
    1.38 +function setLocationHref(aHref, aReplace) {
    1.39 +    if (aReplace)
    1.40 +      document.location.replace(aHref);
    1.41 +    else
    1.42 +      document.location.href = aHref;
    1.43 +}
    1.44 +
    1.45 +var gHref;
    1.46 +function doNextRequest(aTime) {
    1.47 +    function getValue(arg,def) {
    1.48 +        return !isNaN(arg) ? parseInt(Number(arg)) : def;
    1.49 +    }
    1.50 +    var q = tokenizeQuery();
    1.51 +    var delay    = getValue(q['delay'],    0);
    1.52 +
    1.53 +    var now     = (new Date()).getTime();
    1.54 +    var c_intvl = now - c_ts;
    1.55 +    var c_ts    = now + delay; // adjust for delay time
    1.56 +    // Now make the request ...
    1.57 +    if (q['url']) {
    1.58 +        gHref = q['url'] +              
    1.59 +            "?c_part="  + -1 +    // bogo request is not recorded                      
    1.60 +            "&index="   + 0 +              
    1.61 +            "&id="      + q['id'] +                              
    1.62 +            "&maxcyc="  + q['maxcyc'] + 
    1.63 +            "&replace=" + q['replace'] +     
    1.64 +            "&nocache=" + q['nocache'] +  
    1.65 +            "&delay="   + delay +       
    1.66 +            "&timeout=" + q['timeout'] +       
    1.67 +            "&c_intvl=" + c_intvl +           
    1.68 +            "&s_ts="    + gServerTime +  
    1.69 +            "&c_ts="    + c_ts;                         
    1.70 +        window.setTimeout("setLocationHref(gHref,false);", delay);    
    1.71 +        return true; 
    1.72 +    }
    1.73 +}
    1.74 +
    1.75 +function startTest() {
    1.76 +  if (window.innerHeight && window.innerWidth) {
    1.77 +    // force a consistent region for layout and painting.
    1.78 +    window.innerWidth=820;
    1.79 +    window.innerHeight=620;
    1.80 +  }
    1.81 +  doNextRequest(0);
    1.82 +}
    1.83 +
    1.84 +window.setTimeout("startTest()", 1000);
    1.85 +
    1.86 +</script>
    1.87 +</head>
    1.88 +<body>
    1.89 +  <p>
    1.90 +    This page starts the test.
    1.91 +  </p>
    1.92 +  <p>
    1.93 +    dummy page dummy page dummy page dummy page dummy page dummy page 
    1.94 +    dummy page dummy page dummy page dummy page dummy page dummy page 
    1.95 +    dummy page dummy page dummy page dummy page dummy page dummy page 
    1.96 +    dummy page dummy page dummy page dummy page dummy page dummy page 
    1.97 +  </p>
    1.98 +  <p>
    1.99 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.100 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.101 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.102 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.103 +  </p>
   1.104 +  <p>
   1.105 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.106 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.107 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.108 +    dummy page dummy page dummy page dummy page dummy page dummy page 
   1.109 +  </p>
   1.110 +</body>
   1.111 +</html>
   1.112 +
   1.113 +ENDOFHTML
   1.114 +
   1.115 +exit 0;

mercurial