layout/style/test/redundant_font_download.sjs

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/layout/style/test/redundant_font_download.sjs	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,60 @@
     1.4 +const BinaryOutputStream =
     1.5 +  Components.Constructor("@mozilla.org/binaryoutputstream;1",
     1.6 +                         "nsIBinaryOutputStream",
     1.7 +                         "setOutputStream");
     1.8 +
     1.9 +// this is simply a hex dump of a red square .PNG image
    1.10 +const RED_SQUARE =
    1.11 +  [
    1.12 +    0x89,  0x50,  0x4E,  0x47,  0x0D,  0x0A,  0x1A,  0x0A,  0x00,  0x00,
    1.13 +    0x00,  0x0D,  0x49,  0x48,  0x44,  0x52,  0x00,  0x00,  0x00,  0x20,
    1.14 +    0x00,  0x00,  0x00,  0x20,  0x08,  0x02,  0x00,  0x00,  0x00,  0xFC,
    1.15 +    0x18,  0xED,  0xA3,  0x00,  0x00,  0x00,  0x01,  0x73,  0x52,  0x47,
    1.16 +    0x42,  0x00,  0xAE,  0xCE,  0x1C,  0xE9,  0x00,  0x00,  0x00,  0x28,
    1.17 +    0x49,  0x44,  0x41,  0x54,  0x48,  0xC7,  0xED,  0xCD,  0x41,  0x0D,
    1.18 +    0x00,  0x00,  0x08,  0x04,  0xA0,  0xD3,  0xFE,  0x9D,  0x35,  0x85,
    1.19 +    0x0F,  0x37,  0x28,  0x40,  0x4D,  0x6E,  0x75,  0x04,  0x02,  0x81,
    1.20 +    0x40,  0x20,  0x10,  0x08,  0x04,  0x02,  0xC1,  0x93,  0x60,  0x01,
    1.21 +    0xA3,  0xC4,  0x01,  0x3F,  0x58,  0x1D,  0xEF,  0x27,  0x00,  0x00,
    1.22 +    0x00,  0x00,  0x49,  0x45,  0x4E,  0x44,  0xAE,  0x42,  0x60,  0x82
    1.23 +  ];
    1.24 +
    1.25 +function handleRequest(request, response)
    1.26 +{
    1.27 +  var query = {};
    1.28 +  request.queryString.split('&').forEach(function (val) {
    1.29 +    var [name, value] = val.split('=');
    1.30 +    query[name] = unescape(value);
    1.31 +  });
    1.32 +
    1.33 +  response.setHeader("Cache-Control", "no-cache");
    1.34 +
    1.35 +  response.setStatusLine(request.httpVersion, 200, "OK");
    1.36 +  response.setHeader("Content-Type", "text/plain", false);
    1.37 +
    1.38 +  var log = getState("bug-879963-request-log") || "";
    1.39 +
    1.40 +  var stream = new BinaryOutputStream(response.bodyOutputStream);
    1.41 +
    1.42 +  if (query["q"] == "init") {
    1.43 +    log = "init"; // initialize the log, and return a PNG image
    1.44 +    response.setHeader("Content-Type", "image/png", false);
    1.45 +    stream.writeByteArray(RED_SQUARE, RED_SQUARE.length);
    1.46 +  } else if (query["q"] == "image") {
    1.47 +    log = log + ";" + query["q"];
    1.48 +    response.setHeader("Content-Type", "image/png", false);
    1.49 +    stream.writeByteArray(RED_SQUARE, RED_SQUARE.length);
    1.50 +  } else if (query["q"] == "font") {
    1.51 +    log = log + ";" + query["q"];
    1.52 +    // we don't provide a real font; that's ok, OTS will just reject it
    1.53 +    response.write("Junk");
    1.54 +  } else if (query["q"] == "report") {
    1.55 +    // don't include the actual "report" request in the log we return
    1.56 +    response.write(log);
    1.57 +  } else {
    1.58 +    log = log + ";" + query["q"];
    1.59 +    response.setStatusLine(request.httpVersion, 404, "Not Found");
    1.60 +  }
    1.61 +
    1.62 +  setState("bug-879963-request-log", log);
    1.63 +}

mercurial