Backed out changeset 2450366cf7ca (bug 1891629) for causing win msix mochitest failures
[gecko.git] / netwerk / test / browser / early_hint_asset.sjs
blobba52e757ffa953f1987fa7cd942aae3e8072869a
1 "use strict";
3 function handleRequest(request, response) {
4   let hinted =
5     request.hasHeader("X-Moz") && request.getHeader("X-Moz") === "early hint";
6   let count = JSON.parse(getSharedState("earlyHintCount"));
7   if (hinted) {
8     count.hinted += 1;
9   } else {
10     count.normal += 1;
11   }
12   setSharedState("earlyHintCount", JSON.stringify(count));
14   let content = "";
15   let qs = new URLSearchParams(request.queryString);
16   let asset = qs.get("as");
18   if (qs.get("cached") === "1") {
19     response.setHeader("Cache-Control", "max-age=604800", false);
20   } else {
21     response.setHeader("Cache-Control", "no-cache", false);
22   }
24   if (asset === "image") {
25     response.setHeader("Content-Type", "image/png", false);
26     // set to green/black horizontal stripes (71 bytes)
27     content = atob(
28       hinted
29         ? "iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAADklEQVQIW2OU+i/FAAcADoABNV8XGBMAAAAASUVORK5CYII="
30         : "iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAE0lEQVQIW2P4//+/N8MkBiAGsgA1bAe1SzDY8gAAAABJRU5ErkJggg=="
31     );
32   } else if (asset === "style") {
33     response.setHeader("Content-Type", "text/css", false);
34     // green background on hint response, purple response otherwise
35     content = `#square { background: ${hinted ? "#1aff1a" : "#4b0092"}`;
36   } else if (asset === "script") {
37     response.setHeader("Content-Type", "application/javascript", false);
38     // green background on hint response, purple response otherwise
39     content = `window.onload = function() {
40       document.getElementById('square').style.background = "${
41         hinted ? "#1aff1a" : "#4b0092"
42       }";
43     }`;
44   } else if (asset === "fetch") {
45     response.setHeader("Content-Type", "text/plain", false);
46     content = hinted ? "hinted" : "normal";
47   }
49   response.write(content);