File size: 936 Bytes
c481f8a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
const safeText = (v) => {
  try {
    return String(v == null ? "" : v);
  } catch (e) {
    return "";
  }
};

chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => {
  const type = message && message.type;
  if (type === "COLLECT_PAGE") {
    sendResponse({ url: location.href, html: document.documentElement ? document.documentElement.outerHTML : "" });
    return true;
  }

  if (type === "PROMPT") {
    const text = safeText(message && message.text);
    const defaultValue = safeText(message && message.defaultValue);
    const value = window.prompt(text, defaultValue);
    sendResponse({ value: value == null ? "" : safeText(value) });
    return true;
  }

  if (type === "READ_CLIPBOARD") {
    navigator.clipboard
      .readText()
      .then((text) => sendResponse({ text: safeText(text) }))
      .catch(() => sendResponse({ text: "" }));
    return true;
  }

  sendResponse({});
  return true;
});