AddonManager 参考¶
- class AddonManager()¶
这是 UI 和开发者应该调用的公共 API。所有方法都只是转发到 AddonManagerInternal。
- AddonManager.beforeShutdown¶
异步关闭屏障,阻止 AddonManager 关闭的开始。如果调用者需要在 AddonManager 关闭之前完成附加组件管理器操作,则应在此屏障中添加阻塞器。
- AddonManager.init¶
- AddonManager.isReady¶
布尔值,指示 AddonManager 启动是否已完成。
- AddonManager.readyPromise¶
一个 Promise,在 AddonManager 启动完成后解析。如果 AddonManager 的启动不成功,或者在 AddonManager 完成启动之前启动关闭,则可能会被拒绝。
- static AddonManager._verifyThirdPartyInstall(browser, url, install, info, source)¶
验证是否需要显示第三方安装提示。
- 如果这是来自已识别来源的安装,则绕过第三方安装提示。
来自已识别来源的安装。
一个可以绕过面板的附加组件,例如推荐的附加组件。
- 参数:
browser (browser) – 用户正在从中安装的浏览器
url (nsIURI) – 安装源主体(principal)的 URI
install (AddonInstallWrapper)
info (Object) – 信息,例如附加组件包装器
info.addon (AddonWrapper)
source (string) – 简化的字符串,描述安装来源,并根据安装主体和检查站点权限和企业策略生成。它可能是“AMO”、“local”或“other”之一。
- 返回值:
Promise – 当安装不应该继续时被拒绝。
- static AddonManager.addAddonListener(aListener)¶
如果监听器尚未注册,则添加新的 AddonListener。
- 参数:
aListener (AddonManagerListener) – 要添加的 AddonListener。
- static AddonManager.addInstallListener(aListener)¶
如果监听器尚未注册,则添加新的 InstallListener。
- 参数:
aListener – 要添加的 InstallListener
- static AddonManager.addManagerListener(aListener)¶
如果监听器尚未注册,则添加新的 AddonManagerListener。
- 参数:
aListener (AddonManagerListener) – 要添加的监听器
- static AddonManager.addStartupChange(aType, aID)¶
将附加组件添加到本次启动检测到的更改列表中。如果在同一启动期间多次对同一附加组件调用 addStartupChange,则只会记住最近的更改。
- 参数:
aType – 更改类型,表示为字符串。提供者可以定义自己的更改类型,或使用现有的定义的 STARTUP_CHANGE_* 常量
aID – 附加组件的 ID
- static AddonManager.addUpgradeListener(aInstanceID, aCallback)¶
添加新的或覆盖现有的 UpgradeListener。
- 参数:
aInstanceID – 要为其注册监听器的附加组件的实例 ID。
aCallback – 当此附加组件有可用更新时要调用的回调函数。
- 抛出:
如果没有与 instanceID 匹配的附加组件
- static AddonManager.backgroundUpdateCheck()¶
通过为所有可以更新的附加组件启动更新来执行后台更新检查。
- 返回值:
null – Promise 在后台更新检查完成时解析(生成的附加组件安装可能仍在进行中)。
- static AddonManager.callAddonListeners(aMethod)¶
使用事件调用所有已注册的 AddonListeners。方法参数后的任何参数都将传递给监听器。
- 参数:
aMethod – 要调用的监听器上的方法
- static AddonManager.callInstallListeners(aMethod, aExtraListeners)¶
使用事件调用所有已注册的 InstallListeners。extraListeners 参数后的任何参数都将传递给监听器。
- 参数:
aMethod – 要调用的监听器上的方法
aExtraListeners – 一个可选的额外 InstallListeners 数组,也需要调用
- 返回值:
如果任何监听器返回 false,则为 false,否则为 true
- static AddonManager.callManagerListeners(aMethod)¶
使用事件调用所有已注册的 AddonManagerListeners。方法参数后的任何参数都将传递给监听器。
- 参数:
aMethod – 要调用的监听器上的方法
- static AddonManager.callProviders(aMethod)¶
如果存在,则在所有已注册的提供者上调用一个方法,并消耗任何抛出的异常。返回值被忽略。方法参数后的任何参数都将传递到提供者方法。警告:不要用于异步调用;如果提供者方法抛出同步异常,则 callProviders() 不会调用回调函数。
- 参数:
aMethod – 要调用的方法名称
- static AddonManager.escapeAddonURI(aAddon, aUri, aAppVersion)¶
用适当的值替换附加组件 url(更新和更新信息)中的 %…% 字符串。
- 参数:
aAddon – 表示附加组件的 Addon
aUri – 要转义的 URI 的字符串表示形式
aAppVersion – 用于 %APP_VERSION% 的可选应用程序版本
- 返回值:
已正确转义的 URI。
- static AddonManager.getActiveAddons(aTypes)¶
获取特定类型的活动附加组件。
这类似于 getAddonsByTypes(),但它可能只返回关于活动附加组件的有限信息。因此,它可以通过提供者仅使用立即可用的数据来实现,而不是 getAddonsByTypes,后者可能需要 I/O)。
- 参数:
aTypes – 要检索的类型的可选数组。每种类型都是一个字符串名称
- static AddonManager.getAddonByID(aID)¶
异步获取具有特定 ID 的附加组件。
- 参数:
aID (string) – 要检索的附加组件的 ID
- 抛出:
如果未指定 aID 参数
- 返回值:
Promise – 解析为找到的 Addon 或 null(如果不存在此类附加组件)。从不拒绝。
- static AddonManager.getAddonBySyncGUID(aGUID)¶
异步获取具有特定同步 GUID 的附加组件。
- 参数:
aGUID – 要检索的附加组件的字符串 GUID
- 抛出:
如果未指定 aGUID 参数
- static AddonManager.getAddonsByIDs(aIDs)¶
异步获取附加组件数组。
- 参数:
aIDs – 要检索的 ID 数组
- 抛出:
如果未指定 aIDs 参数
- 返回值:
Promise –
- static AddonManager.getAddonsByTypes(aTypes)¶
异步获取特定类型的附加组件。
- 参数:
aTypes – 要检索的类型的可选数组。每种类型都是一个字符串名称
- static AddonManager.getAllAddons()¶
异步获取所有已安装的附加组件。
- static AddonManager.getAllInstalls()¶
异步获取所有当前的 AddonInstalls。
- static AddonManager.getInstallForFile(aFile, aMimetype, aTelemetryInfo, aUseSystemLocation)¶
异步为 nsIFile 获取 AddonInstall。
- 参数:
aFile – 附加组件所在的位置的 nsIFile
aMimetype – 附加组件的可选 mimetype 提示
aTelemetryInfo – 一个可选的对象,提供有关附加组件管理器遥测事件中包含的安装源的详细信息。
aUseSystemLocation – 如果为真,则附加组件将安装到系统配置文件位置。
- 抛出:
如果未指定 aFile 或 aCallback 参数
- static AddonManager.getInstallForURL(aUrl, aOptions={})¶
异步为 URL 获取 AddonInstall。
- 参数:
aUrl – 附加组件所在 URL 的字符串表示形式
aOptions (对象) – 此安装的其他选项
aOptions.hash (字符串) – 附加组件的可选哈希值
aOptions.name (字符串) – 下载附加组件时的可选占位符名称
aOptions.icons (字符串|对象) – 下载附加组件时的可选占位符图标
aOptions.version (字符串) – 下载附加组件时的可选占位符版本
aOptions.browser (XULElement) – 下载权限提示的可选 <browser> 元素。
aOptions.triggeringPrincipal (nsIPrincipal) – 尝试安装附加组件的主体。
aOptions.telemetryInfo (对象) – 一个可选的对象,提供有关附加组件管理器遥测事件中包含的安装源的详细信息。
- 抛出:
如果未指定 aUrl 或传递了类型不正确的可选参数。
- static AddonManager.getInstallsByTypes(aTypes)¶
异步获取所有当前的 AddonInstalls,可以选择限制为类型列表。
- 参数:
aTypes – 要检索的类型的可选数组。每种类型都是一个字符串名称
- 抛出:
如果未指定 aCallback 参数
- static AddonManager.getPreferredIconURL(aAddon, aSize, aWindow)¶
从附加组件提供的图标集中获取最接近指定大小的图标。
可选的窗口参数将用于确定屏幕分辨率并选择更合适的图标。在视网膜屏幕上使用 48px 调用此方法将尝试匹配大小为 96px 的图标。
- 参数:
aAddon – 附加组件对象,含义:具有 icons 属性(它是图标大小和图标 URL 的键值列表)或具有 iconURL 属性的对象。
aSize – 理想的图标大小(以像素为单位)
aWindow – 用于确定正确缩放比例的可选窗口对象。
- 返回值:
字符串 – 图标的绝对 URL,如果附加组件没有图标,则为 null
- static AddonManager.getSitePermsAddonInstallForWebpage(aBrowser:, aInstallingPrincipal, aSitePerm)¶
获取 SitePermsAddonInstall 实例。
- 参数:
aBrowser: (元素) – 启动安装的可选浏览器元素
aInstallingPrincipal (nsIPrincipal)
aSitePerm (字符串)
- 抛出:
Components.Exception – 如果以下情况将抛出错误:- AddonManager 未初始化 - aInstallingPrincipal 不是 nsIPrincipal - aInstallingPrincipal 方案不是 https - aInstallingPrincipal 是公共 etld - aInstallingPrincipal 是普通 IP 地址 - aInstallingPrincipal 在黑名单中 - aSitePerm 不是受控权限 - aBrowser 不为 null 且不是元素
- 返回值:
Promise.<(SitePermsAddonInstall|null)> – 如果没有提供程序具有 getSitePermsAddonInstallForWebpage 方法,则 promise 将解析为 null。实际上,只有在未启用 SitePermsAddonProvider 时(即,dom.sitepermsaddon-provider.enabled 为 false 时)才会出现这种情况。
- static AddonManager.getStartupChanges(aType)¶
获取在最近一次启动期间发生更改的附加组件 ID 数组。
- 参数:
aType – 要获取的启动更改类型
- 返回值:
附加组件 ID 数组
- static AddonManager.hasAddonType(addonType)¶
- 参数:
addonType (字符串)
- 返回值:
布尔值 – 是否有提供程序提供给定的附加组件类型。
- static AddonManager.installAddonFromAOM(browser, uri, install)¶
开始安装由附加组件管理器前端代码创建的 AddonInstall(例如,xpi 的拖放或“从文件安装附加组件”)
- 参数:
browser – 启动安装的浏览器元素
uri – 启动安装的页面的 URI
install – 要安装的 AddonInstall
- static AddonManager.installAddonFromWebpage(aMimetype, aBrowser, aInstallingPrincipal, aInstall, aDetails)¶
开始安装 AddonInstall,并通知已注册的 Web 安装侦听器已阻止或已开始安装。
- 参数:
aMimetype – 正在安装的附加组件的 mimetype
aBrowser – 启动安装的可选浏览器元素
aInstallingPrincipal – 发起安装的 nsIPrincipal
aInstall – 要安装的 AddonInstall
aDetails – 其他可选详细信息
aDetails.hasCrossOriginAncestor – 布尔值,如果触发帧的任何跨源祖先(如果设置为 true,则将拒绝安装),则设置为 true。
- static AddonManager.installBuiltinAddon(aBase)¶
- 从内置位置安装附加组件
(即引用与应用程序一起提供的资源的 resource: url)
- 参数:
aBase – 包含基本 URL 的字符串。必须是 resource: URL。
- 返回值:
安装附加组件后解析的 promise。
- static AddonManager.installSitePermsAddonFromWebpage(aBrowser, aInstallingPrincipal, aPermission)¶
开始安装 SitePermsAddonInstall,并通知已注册的 Web 安装侦听器已阻止或已开始安装。
- 参数:
aBrowser – 启动安装的可选浏览器元素
aInstallingPrincipal – 发起安装的 nsIPrincipal
aPermission – 要安装的权限
- 抛出:
Components.Exception – 如果 AddonManager 未初始化或 aInstallingPrincipal 不是 nsIPrincipal,则将抛出错误。
- 返回值:
Promise – 用户安装附加组件后解析的 promise。如果用户阻止了安装,或者无法安装附加组件(例如,不支持主体),则 promise 将被拒绝。
- static AddonManager.installTemporaryAddon(aFile)¶
从本地文件或目录安装临时附加组件。
- 参数:
aFile – 要临时安装的附加组件的文件或目录的 nsIFile。
- 返回值:
如果附加组件不是有效的无需重启附加组件,或者如果相同 ID 已经临时安装,则拒绝的 Promise。
- static AddonManager.isInstallAllowed(aMimetype, aInstallingPrincipal)¶
检查特定来源是否允许安装给定 MIME 类型的附加组件。
- 参数:
aMimetype – 附加组件的 MIME 类型
aInstallingPrincipal – 发起安装的 nsIPrincipal
- 返回值:
如果来源允许安装此 MIME 类型,则为 true
- static AddonManager.isInstallAllowedByPolicy(aInstallingPrincipal, aInstall, explicit)¶
根据策略检查特定来源是否允许安装附加组件。
- 参数:
aInstallingPrincipal – 发起安装的 nsIPrincipal
aInstall – 要安装的 AddonInstall
explicit – 如果设置此选项,则仅当来源通过策略明确阻止时才返回 true。
- 返回值:
布尔值 默认情况下,如果来源被策略阻止或没有策略,则返回 true。如果设置了 explicit,则仅当来源被策略阻止时才返回 true,否则返回 false。这对于处理逆向情况是必要的。
- static AddonManager.isInstallEnabled(aMimetype)¶
检查特定 MIME 类型是否启用了安装。
- 参数:
aMimetype – 要检查的 MIME 类型
- 返回值:
如果 MIME 类型启用了安装,则为 true
- static AddonManager.markProviderSafe(aProvider)¶
在提供程序启动完成之前,将其标记为可通过 AddonManager API 安全访问。
通常,在提供程序的(同步)startup() 方法返回后才会将其标记为安全。在提供程序被标记为安全之前,AddonManager API 不会使用它。markProviderSafe() 允许提供程序在其启动过程中将其自身标记为安全;如果提供程序想要执行阻止启动的任务,这将很有用,这些任务在其必需的初始化任务之后发生,因此在提供程序处于安全状态时发生。
- 参数:
aProvider – 要标记为安全的提供程序对象
- static AddonManager.maybeInstallBuiltinAddon(aID, aVersion, aBase)¶
类似于 installBuiltinAddon,但仅在具有 ID aID 和版本的现有内置附加组件尚不存在时才安装 aBase 中的附加组件。
- 参数:
aID (字符串) – 注册的附加组件的 ID。
aVersion (字符串) – 注册的附加组件的版本。
aBase (字符串) – 包含基本 URL 的字符串。必须是 resource: URL。
- 返回值:
安装附加组件后解析的 promise。
- static AddonManager.notifyAddonChanged(aID, aType, aPendingRestart)¶
通知所有提供程序,当该类型的附加组件仅支持一次启用一个附加组件时,某个附加组件已启用。这允许提供程序在必要时禁用其附加组件。
- 参数:
aID – 已启用的附加组件的 ID
aType – 已启用的附加组件的类型
aPendingRestart – 一个布尔值,指示更改是否仅在下一次应用程序重新启动时才会生效
- static AddonManager.observe()¶
在我们感兴趣的偏好设置发生更改时收到通知。
- static AddonManager.registerProvider(aProvider, aTypes)¶
注册新的 AddonProvider。
- 参数:
aProvider (字符串) – 要注册的提供程序
aTypes (Array.<string>) – 附加组件类型的可选数组
- static AddonManager.removeAddonListener(aListener)¶
如果监听器已注册,则删除 AddonListener。
- 参数:
aListener (对象) – 要删除的 AddonListener
- static AddonManager.removeInstallListener(aListener)¶
如果监听器已注册,则删除 InstallListener。
- 参数:
aListener – 要删除的 InstallListener
- static AddonManager.removeManagerListener(aListener)¶
如果监听器已注册,则删除 AddonManagerListener。
- 参数:
aListener (AddonManagerListener) – 要删除的监听器
- static AddonManager.removeStartupChange(aType, aID)¶
删除附加组件的启动更改。
- 参数:
aType – 更改的类型
aID – 附加组件的 ID
- static AddonManager.removeUpgradeListener(aInstanceID)¶
如果监听器已注册,则删除 UpgradeListener。
- 参数:
aInstanceID – 要删除的附加组件的实例 ID
- static AddonManager.shouldAutoUpdate(aAddon)¶
确定附加组件是否应自动更新。
- 参数:
aAddon – 表示附加组件的 Addon
- 返回值:
如果附加组件应自动更新,则为 true,否则为 false。
- static AddonManager.shutdownManager()¶
关闭附加组件管理器和所有已注册的提供程序,这必须清理所有内容,以便自动化测试模拟重新启动。
- 返回值:
null – 所有提供程序和相关模块完成关闭后解析的 Promise
- static AddonManager.shutdownState()¶
报告异步关闭的当前状态
- static AddonManager.startup()¶
初始化 AddonManager,加载任何已知的提供程序并初始化它们。
- static AddonManager.uninstallSystemProfileAddon(aID)¶
从系统配置文件位置卸载附加组件。
- 参数:
aID (字符串) – 要删除的附加组件的 ID。
- 返回值:
附加组件卸载后解析的 Promise。
- static AddonManager.unregisterProvider(aProvider)¶
注销 AddonProvider。
- 参数:
aProvider – 要注销的提供程序
- 返回值:
提供程序的“关闭”方法返回的内容(如果有)。对于具有返回 Promise 的异步关闭方法的提供程序,调用方应等待该 Promise 解析。
- static AddonManager.updateAddonAppDisabledStates()¶
通知所有提供程序,他们需要更新其附加组件的 appDisabled 属性以响应应用程序更改(例如阻止列表更新)。
- static AddonManager.updateAddonRepositoryData()¶
通知所有提供程序,存储库已更新其已安装附加组件的数据。