Javascript 我是否可以注销使用nsiWebContentHandlerRegister.registerContentHandler()添加的内容处理程序?

Javascript 我是否可以注销使用nsiWebContentHandlerRegister.registerContentHandler()添加的内容处理程序?,javascript,firefox,firefox-addon,feed,Javascript,Firefox,Firefox Addon,Feed,对于我正在创建的引导加载项,我正在startup()中为提要注册一个内容处理程序: const register=Cc['@mozilla.org/embeddor.implemented/web内容处理程序注册器;1'].getService(Ci.nsiwebcontenthandleregister); register.registerContentHandler('application/vnd.mozilla.maybe.feed', myUri, 我的名字, 无效); 这一切都按

对于我正在创建的引导加载项,我正在
startup()
中为提要注册一个内容处理程序:

const register=Cc['@mozilla.org/embeddor.implemented/web内容处理程序注册器;1'].getService(Ci.nsiwebcontenthandleregister);
register.registerContentHandler('application/vnd.mozilla.maybe.feed',
myUri,
我的名字,
无效);
这一切都按预期进行

但是,在
shutdown()
中,我想再次注销此内容处理程序,因为否则,在后续启动中,我会得到多个首选项,如:

browser.contentHandlers.types.<n>.*
然而,这对我来说也没有任何作用

有没有办法以优雅的方式注销内容处理程序?或者我需要手动操作吗,通过删除提到的首选项和可能的其他相关“东西”

如果后者是适用的,我需要考虑什么“东西”来彻底清除我的内容处理程序?

编辑:
我有一个误会。我还不清楚添加/删除Web提要内容处理程序实际上做了什么

如果您还没有选择默认的rss查看器,我只是在查看浏览器中的rss提要时看到的自动生成的列表。该列表由
browser.contentHandlers.types..*
条目生成

但是内容处理程序也被添加到编辑->首选项->应用程序->Web提要操作列表中。在检查该列表时,发现在调用
nsIWebContentConverterService.removeContentHandler()
时,内容处理程序被很好地删除了。只是该方法没有删除由
nsiWebContentHandlerRegistrator.registerContentHander()添加的首选项

事实证明,
nsIWebContentConverterService
实际上继承了
nsiWebContentHandlerRegistrator
,因此它定义了
registerContentHander()
removeContentHandler()


实现
nsIWebContentConverterService
的对象是,在检查方法
registerContentHander()
removeContentHandler()
时,我发现
removeContentHandler()
没有删除由
registerContentHander()
添加的首选项,因此我对此进行了讨论,因为我相信这可能会被认为是一个bug。

这可能会有所帮助,这里有一节介绍如何注销协议处理程序,可能类似:@Noitidart谢谢!不幸的是,我有一个误解:
removeContentHandler()
实际上删除了内容处理程序,而不是在
registerContentHandler()
中添加的首选项,所以我提交了文件(至少,我相信这可能被认为是一个bug)。