summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/fetch/reroute.js
blob: 2c9bcd35f189f48dd84d881a7a276e05575394e2 (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
onfetch = function(e) {
  if (e.request.url.indexOf("Referer") >= 0) {
    // Silently rewrite the referrer so the referrer test passes since the
    // document/worker isn't aware of this service worker.
    var url = e.request.url.substring(0, e.request.url.indexOf('?'));
    url += '?headers=' + ({ 'Referer': self.location.href }).toSource();

    e.respondWith(e.request.text().then(function(text) {
      var body = text === '' ? undefined : text;
      var mode = e.request.mode == 'navigate' ? 'same-origin' : e.request.mode;
      return fetch(url, {
        method: e.request.method,
        headers: e.request.headers,
        body: body,
        mode: mode,
        credentials: e.request.credentials,
        redirect: e.request.redirect,
        cache: e.request.cache,
      });
    }));
    return;
  }
  e.respondWith(fetch(e.request));
};