File: shared-worker-echo-cookies.js

package info (click to toggle)
thunderbird 1%3A140.4.0esr-1~deb13u1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,609,412 kB
  • sloc: cpp: 7,672,442; javascript: 5,901,613; ansic: 3,898,954; python: 1,413,343; xml: 653,997; asm: 462,286; java: 180,927; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (40 lines) | stat: -rw-r--r-- 1,053 bytes parent folder | download | duplicates (14)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
let port;

self.onconnect = e => {
  port = e.ports[0];
  port.addEventListener('message', onMessage);
  port.start();
};

async function onMessage(e) {
  switch (e.data.type) {
    case 'test_message':
      port.postMessage({ok: true});
      return;
    case 'echo_cookies_http':
      return onEchoCookiesHttp(e);
    case 'echo_cookies_import':
      return onEchoCookiesImport();
    default:
      throw new Error('Unexpected message type ' + e.data.type);
  }
}

async function onEchoCookiesHttp(e) {
  try {
    const resp = await fetch(
        `${self.origin}/cookies/resources/list.py`, {credentials: 'include'});
    const cookies = await resp.json();
    port.postMessage({ok: true, cookies: Object.keys(cookies)});
  } catch (err) {
    port.postMessage({ok: false});
  }
}

// Sets `self._cookies` variable, array of the names of cookies available to
// the request.
importScripts(`${self.origin}/cookies/resources/list-cookies-for-script.py`);

function onEchoCookiesImport() {
  port.postMessage({ok: true, cookies: self._cookies});
}