我们正在尝试将我们的插件迁移到消息管理器和框架脚本。 以前我们的插件使用gBrowser.addProgressListener()和nsIWebProgressListener.onStateChange()以及browser.webProgress.isLoadingDocument来监视网络活动。
问题是我可以继续在未来版本的Firefox中使用browser.addProgressListener和browser.webProgres.isLoadingDocument,或者从框架脚本使用webProgress是更好的方法吗?也许我应该使用其他一些技术?
由于某些原因,它在Firefox 36.0a1中无法可靠地工作,所以我认为我应该将代码移动到帧脚本。即框架的docShell是对webProgress进行QI编辑以在那里添加进度监听器。它在所有情况下都不起作用,所以我猜这只是36.0a1中的一个错误。
“不能可靠地工作”我的意思是当我尝试在当前选项卡中加载空白页面时使用browser.loadURI()方法导航时,不会调用onStateChange()。帧脚本中的webProgress有时会“忘记”将STATE_STOP发送到onStateChange()。