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

时间:2015-06-07 09:13:04

标签: javascript google-chrome google-chrome-extension

我的扩展程序在我的后台页面中使用以下代码行删除了在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
    }
}

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

1 个答案:

答案 0 :(得分:4)

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

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