| 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; | |
| }); | |