在隐身模式下使用chrome.browsingData.remove()

Using chrome.browsingData.remove() in incognito mode

本文关键字:browsingData chrome remove 模式      更新时间:2023-09-26

我有一个扩展,删除在谷歌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隐身模式下运行。这意味着扩展运行在附加到安装扩展的配置文件的单个进程下(即不是隐身窗口)。在这种情况下,chrome.downloads API触发onChanged事件的下载在隐身和正常的配置文件,但chrome.browsingData API只适用于正常的配置文件。

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