“default-browser” Ping¶
此选择退出 Ping 由默认浏览器代理发送,该代理是一个仅限 Windows 的程序,在 Firefox 安装期间会将其自身注册到 Windows 计划任务系统,以便它每 24 小时自动运行一次,无论 Firefox 是否正在运行。计划任务收集此 Ping 的数据,然后通过将其传递给Ping 发送器发送它。
即使此 Ping 由一个与 Firefox 本身分离的二进制文件生成,选择退出遥测也会禁用它;首选项值会被复制到注册表中,以便默认浏览器代理可以读取它,而无需使用配置文件。也会参考相关的策略。代理也有自己的首选项,default-agent.enabled
,如果将其设置为 false,则会禁用所有代理功能,包括生成此 Ping。
每个 Firefox 安装都有自己的代理副本和自己的计划任务,因此每台机器上的每个安装每天都会发送一个 Ping。这是必需的,因为默认浏览器设置是针对每个用户的,并且不同的安装可能是由不同的用户创建的。如果多个操作系统级用户都在使用一个 Firefox 副本,则只会创建一个计划任务,并且只会发送一个 Ping,即使用户可能具有不同的默认浏览器设置。
此 Ping 所在的命名空间称为 default-browser-agent
。
有关默认浏览器代理本身的更多信息,请参阅其文档。
结构¶
由于此 Ping 是从外部二进制文件发送的,因此它被构建为自己的 Ping 文档类型,而不是标准的 Firefox 遥测格式。它还缺少通常存在的大量数据;例如,没有 clientId
或 profileGroupId
,因为代理不会加载任何配置文件,因此无法找到任何配置文件,也没有环境块,因为代理不包含构建它的遥测库代码。
以下是 Ping 数据的格式,每个属性都提供示例值
{
build_channel: <string>, // ex. "nightly", or "beta", or "release"
version: <string>, // ex. "72.0.2"
os_version: <string>, // ex. 10.0.18363.592
previous_os_version: <string>, // ex. 10.0.18363.591
os_locale: <string>, // ex. en-US
default_browser: <string>, // ex. "firefox"
previous_default_browser: <string>, // ex. "edge"
default_pdf_viewer_raw: <string>, // ex. "firefox"
notification_type: <string>, // ex. "initial" or "followup"
notification_shown: <string>, // ex. "shown", or "not-shown", or "error"
notification_action: <string>, // ex. "no-action" or "make-firefox-default-button"
previous_notification_action: <string>, // Same possible values as notification_action
}
build_channel
¶
Firefox 通道。
version
¶
Firefox 版本。
os_version
¶
当前 Windows 版本号。在 Windows 10 以下,格式为 [major].[minor].[build]
;对于 Windows 10,格式为 10.0.[build].[UBR]
。
previous_os_version
¶
在更改为当前设置之前的 Windows 操作系统版本。可能的值与 os_version
相同。
操作系统不会跟踪先前的操作系统版本,因此代理本身会记录此信息。这意味着在代理任务开始运行后第一次更改默认值之前,它将是不准确的。在此之前,previous_os_version
的值将与 os_version
相同。
每次默认代理运行时,此值都会更新,因此当默认浏览器首次更改时,os_version
和 previous_os_version
的值将不同。但在随后执行默认代理时,这两个值将相同。
os_locale
¶
用户为操作系统选择的区域设置(而不是 Firefox)。
default_browser
¶
当前设置为系统默认 Web 浏览器的浏览器。这只是一个包含浏览器名称的字符串;可能的值包括“firefox”、“chrome”、“edge”、“edge-chrome”、“ie”、“opera”和“brave”。
previous_default_browser
¶
在更改为当前设置之前设置为系统默认的浏览器。可能的值与 default_browser
相同。
操作系统不会跟踪先前的默认设置,因此代理本身会记录此信息。这意味着在代理任务开始运行后第一次更改默认值之前,它将是不准确的。在此之前,previous_default_browser
的值将与 default_browser
相同。
每次默认浏览器代理运行时,此值都会更新,因此当默认浏览器首次更改时,default_browser
和 previous_default_browser
的值将不同。但在随后执行默认浏览器代理时,这两个值将相同。
default_pdf_viewer_raw
¶
当前设置为系统默认的 PDF 阅读器。这只是一个包含 PDF 阅读器名称的字符串。
notification_type
¶
显示了哪种通知类型。目前有两种类型的通知,“initial”和“followup”。初始通知首先显示,并带有“稍后提醒我”按钮。后续通知仅在单击“稍后提醒我”按钮时显示,并且具有“永不再次询问”按钮,而不是“稍后提醒我”按钮。请注意,应参考 notification_shown
的值以确定是否实际显示了指定的通知类型。
notification_shown
¶
是否显示了通知。可能的值包括“shown”、“not-shown”和“error”。
notification_action
¶
用户对通知做出的响应操作。目前可能的值包括“dismissed-by-timeout”、“dismissed-to-action-center”、“dismissed-by-button”、“dismissed-by-application-hidden”、“remind-me-later”、“make-firefox-default-button”、“toast-clicked”、“no-action”。
许多值对应于通知上的按钮,应该不言而喻,但有些则不那么明显。“no-action”操作仅在 notification_shown
的值不是“shown”时使用,以指示由于未显示任何通知而未采取任何操作。“dismissed-to-action-center”操作将在用户单击通知右上角的箭头将其关闭到操作中心时使用。“dismissed-by-application-hidden”操作提供是因为这是通知 API 可能提供的关闭方法,但实际上永远不应该看到。 “dismissed-by-timeout”操作表示用户没有与通知交互,并且它超时了。
previous_notification_action
¶
用户对先前通知做出的响应操作。可能的值与 notification_action
的值相同。
如果从未显示过通知,则此值为“no-action”。如果 notification_shown
为“shown”,则此值为刚刚显示的通知之前采取的操作(如果先前没有通知,则为“no-action”)。否则,这将是用户上次显示通知时采取的操作。
请注意,由于此功能是后来添加的,因此可能存在某些看似不可能的配置,例如 notification_type
为“followup”且 previous_notification_action
为“no-action”的组合,因为第一个通知操作是在我们开始存储该值之前采取的。