Here is what the article says:
Method 1
async function c() { const e = [], t = r.map(({id: t, file: n}) => { return fetch(`chrome-extension://${t}/${n}`) }); (await Promise.allSettled(t)).forEach((t, n) => { if ("fulfilled" === t.status && void 0 !== t.value) { const t = r[n]; t && e.push(t.id); } }); return e; }
async function(e) { const t = []; for (const {id: n, file: i} of r) { try { await fetch(`chrome-extension://${n}/${i}`) && t.push(n); } catch(e) {} e > 0 && await new Promise(t => setTimeout(t, e)); } return t; }
chrome-extension://${store_id}/${file_name}
It looks like the user has the freedom to manage this by launching chrome with this flag: --disable-extensions
It also seems there is an extension for extension management to deny extension availability by web site: https://superuser.com/questions/1546186/enable-disable-chrom...
Here is what the article says:
Method 1
Method 2 The API is making an HTTP request to There is then a second stage where they walk the DOM looking for text signatures and element attributes indicative of the store_id valuesIt looks like the user has the freedom to manage this by launching chrome with this flag: --disable-extensions
It also seems there is an extension for extension management to deny extension availability by web site: https://superuser.com/questions/1546186/enable-disable-chrom...