关机时Chrome扩展操作

时间:2013-08-29 01:47:18

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

我正在编写一个非常简单的Chrome扩展程序来自动清除我的历史记录,因为这不是内置功能。我已经实现了它的功能,但只是想确认我已经做了一些有意义的事情,然后再把它包起来。

首先 - 是否有理由做chrome.history.deleteAll?这实际上并不与URL浏览历史记录接口,而是需要使用chrome.browsingData。*。我还应该做前者吗?

下一步 - 搜索和搜索后,似乎无法在关机时执行某项功能。我最接近真实信息的是有人说当Chrome退出时它终止了所有扩展而没有偏见。我是否错过了在关机时清理历史记录的方法?

最后 - 由于我无法在关机时清理,我在启动时清理,在后台页面中使用window.onload。 chrome.runtime.onStartup对我来说没有可靠的工作,而window.onload确实 - 这是一个可行的方法吗?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

你是对的,没有办法在Chrome关闭时执行任何操作。 Chrome没有onClose事件。不仅字面意思,而且隐喻地说:当Chrome关闭时,它不会等待任何扩展程序关闭。

您可以从chrome.windows.onRemoved挂起并等待最后一个窗口关闭,但如果Chrome正在关闭,则无法保证您的分机有时间运行它。与onSuspend相同的东西,或者你找到的任何东西。

因此,如果您的实施有效,则无法保证在其他Chrome中有效。

关于chrome.history.deleteAll,我遇到同样的问题,并会尝试chrome.browsingData,这是一种更现代,更完整的方式来处理浏览数据,包括历史记录。

答案 1 :(得分:1)

This document列出了onSuspend事件:

  

应用关闭前的清理

     

app运行时将onSuspend()事件发送到之前的事件页面   卸下它。您的活动页面可以收听此活动,并且可以   应用程序关闭前的清理任务。

     

触发此事件后,应用程序运行时将启动该过程   关闭应用程序:所有事件都停止触发并执行JavaScript   暂停。处理此事件时启动任何异步操作   不保证完成。使清理任务保持同步   而且简单。

     

chrome.runtime.onSuspend.addListener(function(){//做一些简单的事   清理任务。 });

This document表示onSuspend也可用于扩展程序