summaryrefslogtreecommitdiffstats
path: root/netwerk/test/browser/early_hint_redirect_html.sjs
blob: 2cda0b90f7db92690e3242f58bf8d24db77e8fab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"use strict";

// usage via url parameters:
//  - link: if set sends a link header with the given link value as an early hint repsonse
//  - location: sets destination of 301 response

function handleRequest(request, response) {
  Cu.importGlobalProperties(["URLSearchParams"]);
  let qs = new URLSearchParams(request.queryString);
  let link = qs.get("link");
  let location = qs.get("location");

  // write to raw socket
  response.seizePower();
  if (link != undefined) {
    response.write("HTTP/1.1 103 Early Hint\r\n");
    response.write(`Link: ${link}\r\n`);
    response.write("\r\n");
  }

  response.write("HTTP/1.1 307 Temporary Redirect\r\n");
  response.write(`Location: ${location}\r\n`);
  response.write("\r\n");
  response.finish();
}