From 36a3536a584e07b0526aff5ba8d4b0293d2330e9 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sun, 1 Dec 2024 16:33:51 -0500 Subject: Push experimental code --- extension/public/background.js | 88 ++++++++++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 21 deletions(-) (limited to 'extension/public/background.js') diff --git a/extension/public/background.js b/extension/public/background.js index 1f09158..0f9e3e3 100644 --- a/extension/public/background.js +++ b/extension/public/background.js @@ -2,27 +2,73 @@ function getBrowser() { return typeof browser === "undefined" ? chrome : browser; } -function toDataURL(url) { - return fetch(url) - .then(response => response.blob()) - .then(blob => new Promise((resolve, reject) => { - const reader = new FileReader() - reader.onloadend = () => resolve(reader.result) - reader.onerror = reject - reader.readAsDataURL(blob) - })) -} +// function toDataURL(url) { +// return fetch(url) +// .then(response => response.blob()) +// .then(blob => new Promise((resolve, reject) => { +// const reader = new FileReader() +// reader.onloadend = () => resolve(reader.result) +// reader.onerror = reject +// reader.readAsDataURL(blob) +// })) +// } +// +// async function getDocument(url) { +// let res = await fetch(url) +// let html = await res.text(); + + // console.log("html", url); + // await chrome.offscreen.createDocument({ + // url: url, + // reasons: ["DOM_SCRAPING"], + // justification: "locating highest quality icons" + // }) +// } + +// function getGoogleFavicons(u) { +// const url = new URL('https://www.google.com/s2/favicons'); +// url.searchParams.set("sz", "256"); +// url.searchParams.set("domain_url", u); +// return url.toString(); +// } -getBrowser().runtime.onMessage.addListener(async (request, sender, sendResponse) => { - console.log("received message", request) - let [url, icon] = request; +// function getIcons(doc) { +// const tagTypes = ["apple-touch-icon", "shortcut icon", "icon"] +// +// return Array.from(doc.getElementsByTagName("link")) +// .filter(elem => tagTypes.includes(elem.rel)) +// .sort((a, b) => { +// function compareTags() { +// // ascending +// return tagTypes.indexOf(a.rel) - tagTypes.indexOf(b.rel); +// } +// function compareSizes() { +// function getSize(elem) { +// try { return Number(elem.sizes[0].split('x')[0]); } +// catch { return 0; } +// } +// // descending +// return getSize(b) - getSize(a); +// } +// +// return compareSizes() || compareTags() +// }) +// .map(elem => elem.href); +// } - let bmk = (await getBrowser().bookmarks.search({url : url})); - console.log(bmk) - if (bmk && bmk.length > 0) { - let imgData = await toDataURL(icon) - // console.log(imgData) - await getBrowser().storage.local.set({["icon-cache-"+bmk[0].id]: imgData}); - } - sendResponse(); +getBrowser().runtime.onMessage.addListener((request, sender, sendResponse) => { + // let url = request; + // + // let doc = await getDocument(url); + // let icons = getIcons(doc); + // if (icons.length <= 0) return; + // console.log(icons[0]) + // let imgData = await toDataURL(icons[0]); + // await getBrowser().storage.local.set({["icon-cache-"+bmk[0].id]: imgData}); + fetch(request).then(r1 => { + r1.text().then(r2 => { + sendResponse(r2) + }).catch(ex => console.log("Failed to get text", request, ex)) + }).catch(ex => console.log("Failed to fetch", request, ex)) + return true; }) -- cgit v1.2.3