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

Arm*_*let 5 javascript google-chrome google-chrome-extension

我的扩展程序在我的后台页面中使用以下代码行删除了在Google Chrome中进行的下载:

chrome.browsingData.remove({ "since": 0 }, { "downloads": true });
Run Code Online (Sandbox Code Playgroud)

当下载处于正常窗口时,无论何时在隐身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
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Jim*_*ien 4

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

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