我的扩展程序在我的后台页面中使用以下代码行删除了在Google Chrome中进行的下载:
chrome.browsingData.remove({ "since": 0 }, { "downloads": true });
当下载处于正常窗口时,无论何时在隐身Chrome窗口中进行下载,都不会将其删除。我的扩展程序在隐身模式下激活,后台页面可以检测隐身页面中的下载何时完成:
chrome.downloads.onChanged.addListener(function(download) {
if (download.state && download.state.current == "complete") {
// The code here is fired even if the download has been completed in incognito mode
}
}
有没有办法从背景页面中删除隐身窗口中的浏览数据?
答案 0 :(得分:4)
您遇到的问题是您的扩展程序正在spanning
incognito mode中运行。这意味着扩展程序在连接到安装扩展程序的配置文件(即不是隐身窗口)的单个进程下运行。在这种情况下,chrome.downloads
API会在隐身和普通配置文件中触发onChanged
事件以进行下载,但chrome.browsingData
API仅适用于普通配置文件。
相反,您希望使用split
隐身模式。这意味着扩展程序在使用它的每个配置文件中单独运行(即隐身窗口获得其自己的扩展程序的运行副本)。这意味着当您调用chrome.browsingData
API时,它将应用于触发事件的窗口。