SearchService 参考

class SearchService()

搜索服务负责加载和维护搜索引擎。它还会根据每个区域设置/地区的语言环境确定默认列表。

SearchService.SearchService
SearchService._cachedSortedEngines

类型:数组

一个按显示顺序排序的引擎简称数组。

SearchService._engines

类型:Map.<字符串, 对象>|null

一个引擎显示名称到 SearchEngine 的映射。

SearchService._reloadingEngines

类型:布尔值

指示我们当前是否在 maybeReloadEngines 中。

它以 _ 而不是 # 为前缀,因为它是测试中调用的。

SearchService._searchDefault

类型:对象

一个对象,包含配置建议的默认引擎的 AppProvidedSearchEngine 的 ID。对于旧版配置,它是用户可见的名称。

它以 _ 而不是 # 为前缀,因为它是测试中调用的。

SearchService.appDefaultEngine
SearchService.appPrivateDefaultEngine
SearchService.dontSetUseSavedOrder

类型:布尔值

一个标志,用于在发生非用户活动时防止设置 useSavedOrder。

SearchService.engineSelector

类型:SearchEngineSelector|null

管理引擎配置的引擎选择器单例。

SearchService.errorToThrowInTest

类型:字符串

仅测试使用的变量,用于指示在搜索服务初始化期间应发生错误。

SearchService.hasSuccessfullyInitialized

确定初始化是否已成功完成。

SearchService.initDeferredPromise

类型:Promise

初始化完成后解析的延迟 Promise。

初始化成功完成时解析,失败时拒绝。

SearchService.initializationStatus

类型:字符串

指示初始化是否已开始、失败、成功或尚未开始。

这些是状态

“未初始化” - SearchService 尚未开始初始化。 “已开始” - SearchService 已开始初始化。 “成功” - SearchService 成功完成初始化。 “失败” - SearchService 在初始化期间失败。

SearchService.isInitialized

确定初始化是否已完成。

服务的客户端可以使用此属性快速确定初始化是否已完成,并决定触发某些立即处理、启动异步初始化或退出。

请注意,此属性不表示初始化已成功,请使用 hasSuccessfullyInitialized() 来判断。

SearchService.loadPathIgnoreList

类型:数组

如果各种搜索引擎的加载路径包含在此列表中,则可能会被忽略。此列表由远程设置控制。

SearchService.maybeReloadDebounce

类型:布尔值

指示我们是否已经在等待调用 maybeReloadEngines。

SearchService.observersAdded

类型:布尔值

跟踪观察者是否已添加。

SearchService.openSearchUpdateTimerStarted

类型:布尔值

跟踪 OpenSearch 更新计时器是否已启动。

SearchService.parseSubmissionMap

类型:Map.<字符串, submissionMapEntry>|null

此映射在可用搜索引擎更改后延迟构建。它允许快速解析表示搜索提交的 URL,将其解析为搜索引擎名称和原始术语。

键是包含引擎提交的域名和小写路径的字符串,例如“www.google.com/search”。

SearchService.promiseInitialized

初始化完成后解析的 Promise。这不会触发初始化开始。

SearchService.searchPrivateDefault

类型:对象

一个对象,包含配置建议的隐私浏览模式默认引擎的 AppProvidedSearchEngine 的 ID。对于旧版配置,它是用户可见的名称。

SearchService.startupExtensions

类型:Set.<对象>

SearchSevice 启动之前,AddonManager 启动时报告的一组已安装的搜索扩展。将在 init() 期间安装。不包含应用程序提供的引擎。

SearchService.startupRemovedExtensions

类型:Set.<对象>

SearchSevice 启动之前,AddonManager 启动时报告的一组已删除的搜索扩展。将在 init() 期间删除。

SearchService.submissionURLIgnoreList

类型:数组

如果各种搜索引擎的提交 URL 包含列表中的字符串,则可能会被忽略。此列表由远程设置控制。

SearchService._getEngineDefault(privateMode)

获取当前默认引擎的辅助函数。

它以 _ 而不是 # 为前缀,因为它是 test_remove_engine_notification_box.js 中调用的。

参数:
  • privateMode (布尔值) – 如果为真,则返回隐私浏览模式的默认引擎,否则返回普通模式的默认引擎。请注意,此函数不会检查“separatePrivateDefault”首选项 - 这由调用方决定。

返回值:

nsISearchEngine|null – 适当的搜索引擎,如果无法确定则为 null。

SearchService._maybeReloadEngines(changeReason)

异步重新加载引擎,但仅在服务已初始化时。

它以 _ 而不是 # 为前缀,因为它是 test_reload_engines.js 中调用的。

参数:
  • changeReason (整数) – 调用重新加载引擎的原因,Ci.nsISearchService.CHANGE_REASON* 中的一个。

SearchService._reloadEngines(settings, changeReason)

当用户环境或配置发生更改时,管理搜索引擎的重新加载。

此处的执行顺序旨在避免更新默认引擎时可能出现的问题,从而避免删除活动默认值或尝试将默认值设置为尚未添加的内容。顺序是

  1. 更新旧版和新版配置中都存在的现有引擎。

  2. 添加新配置中的任何新引擎。

  3. 检查由于环境更改而需要对默认引擎进行的更改,并可能根据覆盖允许列表覆盖引擎。

  4. 更新默认引擎。

  5. 移除任何旧引擎。

它以 _ 而不是 # 为前缀,因为它是 test_remove_engine_notification_box.js 中调用的。

参数:
  • settings (对象) – 用户当前保存的设置。

  • changeReason (整数) – 调用重新加载引擎的原因,Ci.nsISearchService.CHANGE_REASON* 中的一个。

SearchService._showRemovalOfSearchEngineNotificationBox(prevCurrentEngineName, newCurrentEngineName)

显示一个信息栏,通知用户他们的默认搜索引擎已被移除并替换为新的默认搜索引擎。

此方法以 _ 而不是 # 为前缀,因为它是在测试中调用的。

参数:
  • prevCurrentEngineName (字符串) – 将被替换的先前默认引擎的名称。

  • newCurrentEngineName (字符串) – 将成为新默认引擎的引擎名称。

SearchService.addEnginesFromExtension(extension)

当 AddonManager 安装包含搜索引擎定义的新扩展或现有扩展的升级时调用。

参数:
  • extension (对象) – 包含有关扩展数据的一个扩展对象。

SearchService.addUserEngine(name, url, alias)

添加用户指定的搜索引擎。

参数:
  • name (字符串) – 搜索引擎的名称

  • url (字符串) – 搜索引擎用于搜索的 URL

  • alias (字符串) – 搜索引擎的别名

SearchService.getEngineById(engineId)

返回与 ID 关联的引擎。

参数:
  • engineId (字符串) – 引擎的 ID。

返回值:

SearchEngine – 如果找到则为关联的引擎,否则为 null。

SearchService.getEngineByName(engineName)

如果可能,请调用 getEngineById() 而不是 getEngineByName(),因为引擎在此 _engine Map 中存储为 { id: object }。

返回与名称关联的引擎。

参数:
  • engineName (字符串) – 引擎的名称。

返回值:

SearchEngine – 如果找到则为关联的引擎,否则为 null。

SearchService.init()

此函数调用 #init 在初始化尚未开始时启动初始化。否则,它返回挂起的 Promise。

返回值:

Promise – 当 #init 已启动但尚未完成时返回挂起的 Promise。 | 已解决 | 当初始化成功完成时。 | 已拒绝 | 当初始化失败时。

SearchService.notify()

这是为处理搜索引擎更新而注册的 timerManager 通知的一个 nsITimerCallback。只有 OpenSearch 引擎具有这些更新,因此,此处仅处理这些更新。

SearchService.reset()

仅供测试 - 重置 SearchService 数据。理想情况下,这应该被替换

SearchService.runBackgroundChecks()

运行搜索服务的后台检查。这由 BrowserGlue 调用,如果用户空闲时间足够长,则可能每个会话运行一次。