时刻页面

什么是时刻页面?

时刻页面是一个网页 URL,它会在现有 Firefox 桌面用户后续启动时加载,适用于满足时刻消息配置中指定的定位的用户配置文件。

时刻页面与 WNP (新功能页面) 不同,后者在用户更新到新主版本时根据该通道/构建的可执行文件中内置的配置显示。时刻页面在常规重启时(而非升级时)显示,并且可以通过消息系统进行远程配置。

同步启动行为的约束阻止了等待远程设置做出定位决策,导致“时刻页面”在后续启动时显示。

启动首选项生命周期

选择/阻止/显示的过程如下

  1. 在任何 “update” 周期开始时(即以定期间隔,最好是在远程设置更新时)

  2. 检查覆盖首选项 browser.startup.homepage_override.once;如果设置了消息 ID,则取消阻止该消息,因为它尚未显示。清除覆盖首选项。

  3. 运行消息通过定位并选择一条消息。

  4. 在首选项中设置消息及其过期数据

  5. 立即阻止所选的消息。

当消息在启动时显示时

  1. 清除覆盖首选项。

时刻页面的示例

Moments

测试时刻页面

通过开发者工具:

  1. 在搜索选项卡中转到 about:config,将 browser.newtabpage.activity-stream.asrouter.devtoolsEnabled 设置为 true

  2. 打开一个新标签页,在搜索选项卡中转到 about:asrouter

  3. 在开发者工具中,从 panel_local_testing 作为提供程序选择并显示消息

  4. 您应该看到带有 "template": "update_action" 的示例 JSON 消息。您可以直接在文本区域中修改消息或通过粘贴自定义消息 JSON 进行修改。为了测试,请将配置中的 id 属性保持与修改的消息相同。

  5. 单击 Modify 会更新覆盖首选项 browser.startup.homepage_override.once 并配置消息系统在下次浏览器重启时打开消息配置中的时刻 URL。

  6. 确保所有必需的属性都根据 时刻架构 进行了覆盖

  7. 重启 Firefox,您的时刻页面应该会在重新运行时弹出

通过实验:

您可以通过创建实验来测试时刻页面。 消息传递之旅 捕获了通过 Nimbus 创建实验的过程。

时刻页面的示例 JSON

{
  "groups": [
    "moments-pages"
  ],
  "content": {
    "action": {
      "id": "moments-wnp",
      "data": {
        "url": "https://www.mozilla.org/firefox/welcome/12",
        "expireDelta": 172800000
      }
    }
  },
  "trigger": {
    "id": "momentsUpdate"
  },
  "template": "update_action",
  "targeting": "true",
  "id": "WNP_THANK_YOU"
}