我有一个使用 chrome.webRequest、chrome.browserAction 等的扩展程序,但我的扩展程序还需要访问文件系统(未沙盒),我发现 chrome.fileSystem 可以做到这一点,但它仅在 Chrome 应用程序中可用。由于我必须选择扩展程序或应用程序,所以这意味着我不能同时使用 chrome.webRequest 和 chrome.fileSystem?
我想知道为什么 Chrome 扩展程序不允许使用 fileSystem API,我认为它会非常有用。
最佳答案
简短回答:安全原因。
扩展程序被认为比应用程序风险更大。扩展程序可以做很多应用程序无法做的事情,例如 Hook 网络请求或将脚本注入(inject)页面。应用程序通过 CSP 进行了密封,并且它们的运行时模型更加隔离。
因此,被认为有风险的 API(文件系统可能是我们拥有的风险最高的 API)默认情况下不会在扩展中提供。
话虽如此,关于如何为扩展提供更多 API 的讨论仍在继续。
关于javascript - chrome.fileSystem 仅在 Chrome 应用中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461059/