2013-08-29 185 views
3

我正在编写一个非常简单的Chrome扩展程序来自动清除我的历史记录,因为这不是内置功能。我有它的功能,但只是想确认我做了有意义的事情之前,我把它包装起来。关闭Chrome浏览器扩展动作

首先 - 是否有理由做一个chrome.history.deleteAll?这实际上并没有出现与URL浏览历史记录交互的情况,相反,您需要使用chrome.browsingData。*。无论如何,我应该做前者吗?

下一步 - 搜索和搜索后,似乎无法在关闭时执行某个功能。我得到的最真实的信息是有人说当Chrome退出时它终止所有扩展,没有偏见。我是否缺少清理关机历史的方法?

最后 - 因为我无法清理关机,所以我在启动时使用window.onload清理了背景页面。 chrome.runtime.onStartup在window.onload时没有可靠的工作 - 这是一个可以做事情的好方法吗?

在此先感谢您的帮助。

回答

3

你是对的,没有办法执行在Chrome关机什么。 Chrome没有onClose事件。不仅从字面上,而且用比喻的话来说:Chrome关闭后,它不会等待任何扩展程序关闭。

您可以从chrome.windows.onRemoved挂起并等待最后一个窗口关闭,但如果Chrome关闭,则不能保证您的扩展程序有时间运行它。与onSuspend相同的东西,或任何你找到的。

因此,如果您的实施有效,将无法保证在其他Chrome浏览器中正常运行。

关于chrome.history.deleteAll,我有同样的问题,并会尝试与chrome.browsingData,一个更现代和完整的方式来处理浏览数据,包括历史。

1

This document列出的onSuspend事件:应用程序之前

清理关闭

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

一旦这个事件被触发,应用程序运行时将启动关闭应用程序的 的进程:所有事件停止触发,并且JavaScript执行被停止, 停止。在处理此事件 时,任何异步操作都不能保证完成。保持清理任务同步 和简单。

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

This documentonSuspend也可用于扩展

+1

我尝试了onSuspend事件,它显然只适用于可以挂起的事件页面 - 背景页面从来没有遇到过onSuspend。这是当我去寻找更多的信息,并发现有人说扩展终止,恕不另行通知。这是某人发布的帖子,而不是官方的Chrome文档,所以我希望有经验的人能够确认这种方式。无论如何,我会重新尝试使用onSuspend来查看是否可以更可靠地工作。 – Mark