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)¶
当用户环境或配置发生更改时,管理搜索引擎的重新加载。
此处的执行顺序旨在避免更新默认引擎时可能出现的问题,从而避免删除活动默认值或尝试将默认值设置为尚未添加的内容。顺序是
更新旧版和新版配置中都存在的现有引擎。
添加新配置中的任何新引擎。
检查由于环境更改而需要对默认引擎进行的更改,并可能根据覆盖允许列表覆盖引擎。
更新默认引擎。
移除任何旧引擎。
它以 _ 而不是 # 为前缀,因为它是 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 调用,如果用户空闲时间足够长,则可能每个会话运行一次。