“update” ping

当浏览器更新准备应用且已正确应用后,此选择退出 ping 将从 Firefox 桌面发送。

结构

{
  type: "update",
  ... common ping data
  clientId: <UUID>,
  profileGroupId: <UUID>,
  environment: { ... },
  payload: {
    reason: <string>, // "ready", "success"
    targetChannel: <string>, // "nightly" (only present for reason = "ready")
    targetVersion: <string>, // "56.0a1" (only present for reason = "ready")
    targetBuildId: <string>, // "20080811053724" (only present for reason = "ready")
    targetDisplayVersion: <string>, // "56.0a1" (only present for reason = "ready")
    previousChannel: <string>, // "nightly" or null (only present for reason = "success")
    previousVersion: <string>, // "55.0a1" (only present for reason = "success")
    previousBuildId: <string>, // "20080810053724" (only present for reason = "success")
  }
}

payload.reason

此字段支持以下值

  • ready 表示 ping 在更新下载并标记为准备处理后生成。对于非分阶段更新,这在下载完成后并经过验证后立即发生,而对于分阶段更新,这在开始分阶段步骤之前发生。

  • success 表示在浏览器重新启动并正确应用更新后生成 ping。

payload.targetChannel

从中获取更新的 Firefox 频道(仅对原因“ready”的 ping 有效)。

payload.targetVersion

浏览器要更新到的 Firefox 版本。遵循与 application.version 相同的格式(仅对原因“ready”的 ping 有效)。

payload.targetBuildId

浏览器要更新到的 Firefox 构建 ID。遵循与 application.buildId 相同的格式(仅对原因“ready”的 ping 有效)。

payload.targetDisplayVersion

浏览器要更新到的 Firefox 显示版本。这可能包含与targetVersion不同的值,例如,对于Beta频道,此字段将报告 beta 后缀,而targetVersion将仅报告版本号。

payload.previousChannel

应用更新之前配置文件所在的 Firefox 频道(仅对原因“success”的 ping 有效)。这可以是null

payload.previousVersion

浏览器要更新自的 Firefox 版本。遵循与 application.version 相同的格式(仅对原因“success”的 ping 有效)。

payload.previousBuildId

浏览器要更新自的 Firefox 构建 ID。遵循与 application.buildId 相同的格式(仅对原因“success”的 ping 有效)。

预期行为

以下是update ping 的条件和预期行为列表

  • 每次下载更新后,并在更新经过验证后,都会生成此 ping

    • 对于查看过隐私政策的用户update ping 会立即发送;

    • 对于未查看过隐私政策的用户update ping 会保存到磁盘,并在显示政策后发送。

  • 如果更新下载重试或发生其他回退update ping 不会多次生成,而只会生成一次,即在下载完成后并经过验证后。

  • 如果禁用自动更新:当用户强制进行手动更新时,不会生成update ping。

  • 如果更新应用失败:在某些情况下,客户端将下载相同的更新 blob 并为相同的目标版本和构建 ID 生成新的update ping,但文档 ID 不同。

  • 如果构建更新频道包含 CCK 关键字,则更新 ping 不会报告它,而是报告普通频道名称(例如,mozilla-cck-test-beta 将报告为beta)。

  • 如果在应用更新之前发生配置文件刷新,则不会生成原因reason = success的更新 ping。

  • 如果更新应用于与下载时不同的新配置文件,则不会生成原因reason = success的更新 ping。

  • 如果安装较新的浏览器版本覆盖旧版本,则不会生成原因reason = success的更新 ping。