0

我对此并不陌生,对垃圾收集对无重启插件的确切工作方式有点不知所措。

从我的关闭函数中,我目前调用我必须进行清理的所有对象。他们将任何事件处理程序删除到他们可能设置的外部代码,然后删除自己的所有属性。

然后我要求delete namespace.ObjectA那里的所有物品。命名空间本身是我在 bootstrap.js 中创建的一个变量。我想知道这是否有必要,或者在调用我的插件的关闭函数后,firefox 会从 bootstrap.js 中删除所有全局变量,因此从我的插件外部无法访问的所有其他对象?

显然,如果关闭的原因是 Firefox 应用程序关闭,我不会进行任何清理。

我是否错过了清理时应该做的任何事情?

4

1 回答 1

1

请注意,无重启插件必须在“禁用”或“卸载”时执行这些操作。

插件必须移除事件监听器和观察器。
删除作为变量并将由 GC 完成的命名空间并不重要(也未完成)。
此外,插件必须恢复(而不是重置)它自己之外的任何更改的偏好。

正如您所说,通常不需要对 Firefox 应用程序关闭执行任何操作。

参考资料

于 2015-02-03T14:41:24.743 回答