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()

通知所有提供程序,存储库已更新其已安装附加组件的数据。