答案 0 :(得分:1)
nsICategoryManager
的目的是将条目(通常是XPCOM组件)添加到类别中。管理器本身仅提供注册机制,如何使用类别完全取决于读取类别条目的代码。例如,Firefox启动时需要激活组件的profile-after-change
category。
大多数扩展程序不应再显式使用nsICategoryManager
,可以使用chrome.manifest
中的一行添加类别条目:
category profile-after-change MyComponent @foobar/mycomponent;1
当激活扩展程序时,这将隐式调用nsICategoryManager.addCategoryEntry()
。
修改:出于好奇,我决定在Firefox源代码中搜索nsCategoryCache
以查看其他类别。列表如下:
"content-policy"
代表nsIContentPolicy
个实例。
{li> "net-content-sniffers"
和"content-sniffing-services"
nsIContentSniffer
个实例。
{li> "vacuum-participant"
代表mozIStorageVacuumParticipant
个实例。
{li> "bookmark-observers"
代表nsINavBookmarkObserver
个实例。
{li> "history-observers"
代表nsINavHistoryObserver
个实例。
"idle-daily"
由nsIIdleService
管理的观察员。这些只是缓存和监控变化的类别,完整列表要长得多。