消息系统

愿景

Firefox 必须是一个有主见的浏览器,在用户浏览网络时,确保他们的安全、信息获取和效率。为了拥有主见,Firefox 必须拥有声音。

这种声音会 **尊重用户的注意力**,同时提供与上下文相关的及时信息,这些信息根据用户的个人需求和选择量身定制。

消息系统支持什么?

有一些关键的机会窗口,例如首次运行激活阶段或协调的功能发布,Firefox 在这些阶段与用户互动。

Firefox 消息系统通过精准地将消息推送给需要查看的用户来支持这种互动,并能够开发新的用户消息,这些消息可以轻松地进行测试和部署。它提供标准机制来衡量用户参与度,并以更少的工程团队工作量和更快的交付周期(从构思到分析结果)来执行用户消息实验。

这转化为 **用户看到的应用内消息更少且更相关**,同时支持快速交付、实验和保护用户的宝贵时间和注意力。

消息系统概述

Firefox 消息系统的核心是消息系统路由器(由于历史原因称为 ASRouter)。路由器是一个通用的 Firefox 组件和一组约定,提供以下功能:

  • 灵活且可配置的本地或远程消息到 UI 模板的路由。这允许新的消息活动在主线或分支线上启动和控制

  • 流量控制消息排序和中介,以防止同时显示多个消息

  • 可编程的消息目标语言,以便在正确的时间向正确用户显示正确的消息

  • 一个可复用的消息和通知 UI 模板库

  • 与 Normandy pref-flip 实验完全兼容

  • 通用且注重隐私的事件遥测

  • 灵活的频率限制,以缓解用户消息疲劳

  • 本地化的分支线消息

  • about:asrouter 上提供强大的开发/调试/QA 工具

消息路由

Message Routing Overview

Firefox 消息系统为消息、UI 模板和时间/目标机制实现了关注点分离模式。这使我们能够在保持高度安全性和质量标准的同时,仍然能够围绕内容创建提供最大的灵活性。

UI 模板

我们构建了一个可复用的通知和消息界面库,这些界面包含在 Firefox 代码库中并随主线发布。这些模板根据可用的设计组件(例如标题、文本、图标)具有定义的架构,并可以访问一组增强的用户操作,例如触发 URL、启动菜单或安装加载项,这些操作可以附加到交互式元素(例如按钮)。

警告!在阅读之前,您应该考虑一下是否 消息实验与您的需求相关

当前模板包括

详细文档