IndexedDb 的范围是什么

What is the Scope of IndexedDb

我正在编写一个浏览器插件,旨在自动从互联网上删除已知的儿童性虐待图像。目前我正在使用 LocalStorage 来保存图像源列表(src urls)问题是这样的:

用户在 http://Server1.com - right clicks on it and reports it. The src url (http://server3.com/image.jpg) is saved to the LocalStorage when the user goes to http://server2.com a new LocalStorage for that domain is used. So even if http://server2.com has the same image whose source is http://server3.com/image.jpg 上发现了 CSA 图片,扩展不会知道它已经被报告过。或者至少它看起来是这样工作的。

所以对于这个问题: IndexedDB 是否跨域共享信息? 和 我是否正确理解了 LocalStorage 的范围?

您正在对内容脚本使用 LocalStorage。内容脚本在您注入它的页面的上下文中执行。这就是为什么您最终要为每个域分离 LocalStorage 实例。

这个问题与 IndexedDB 相同。

如果你想在所有域之间共享存储,你需要从你的扩展程序的后台页面使用 LocalStorage/IndexedDB,然后使用 Chrome 的消息 API 从内容脚本。

如果您想扩展到超过数千个 url,您可能需要从 LocalStorage 切换到 IndexedDB,后者性能更高并且具有您需要的搜索功能。

这是消息传递文档:https://developer.chrome.com/extensions/messaging