FOG 代码组织¶
该图显示了 Project FOG 的不同模块。
FOG 控制¶
此模块是 Firefox 和 Glean 之间的粘合剂。
代码位于
toolkit/components/glean/src
中。它使用 Rust 编写。
该 crate 名为
fog_control
。它不会发布到 crates.io。
它不会被 mozilla-central 中的其他 Rust crate 使用。
此模块负责
收集和组装 客户端信息
通过 Rust 语言绑定配置 Glean SDK
监视 Firefox 遥测数据上传偏好设置 (
datareporting.healthreport.uploadEnabled
)调度内置 Ping
控制 Ping 上传工作线程
传递 IPC 缓冲区
它调用 glean
(Glean SDK Rust 语言绑定)来
配置和初始化 Glean
切换
upload_enabled
获取上传任务
它调用 fog
来
传递 IPC 缓冲区
记录到其自身的指标
FOG API¶
此模块为 mozilla-central 中的 Glean 提供面向用户的 API。
代码位于
toolkit/components/glean/api
中。它使用 Rust 编写。
该 crate 名为
fog
。它不会发布到 crates.io。
它可以被 mozilla-central 中的其他 Rust crate 使用,用于它们的 Glean 使用。
此模块负责
在 Rust 中公开特定的指标 API
包装指标实现以处理 IPC
公开 FFI 功能,以便在上面实现其他语言 API。另请参见 添加新的指标类型。
它调用 glean
(Glean SDK Rust 语言绑定)用于
指标类型(包括 Ping)