我有一个扩展程序,可在后台页面中使用以下代码删除在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
    }
}

有没有办法从背景页面删除隐身窗口中的浏览数据?

最佳答案

您面临的问题是您的扩展程序正在 spanning incognito mode中运行。这意味着该扩展程序在附加到安装该扩展程序的配置文件(即隐身窗口)的单个进程下运行。在这种情况下,chrome.downloads API会在隐身配置文件和普通配置文件中触发onChanged事件进行下载,但chrome.browsingData API仅适用于普通配置文件。

相反,您想使用split隐身模式。这意味着该扩展程序在使用该扩展程序的每个配置文件中分别运行(即,隐身窗口会获得其自己的扩展程序运行副本)。这意味着,当您调用chrome.browsingData API时,它将应用于触发事件的窗口。

关于javascript - 在隐身模式下使用chrome.browsingData.remove(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30691843/

10-12 13:25