时刻页面¶
什么是时刻页面?¶
时刻页面是一个网页 URL,它会在现有 Firefox 桌面用户后续启动时加载,适用于满足时刻消息配置中指定的定位的用户配置文件。
时刻页面与 WNP (新功能页面) 不同,后者在用户更新到新主版本时根据该通道/构建的可执行文件中内置的配置显示。时刻页面在常规重启时(而非升级时)显示,并且可以通过消息系统进行远程配置。
同步启动行为的约束阻止了等待远程设置做出定位决策,导致“时刻页面”在后续启动时显示。
启动首选项生命周期¶
选择/阻止/显示的过程如下
在任何
“update”
周期开始时(即以定期间隔,最好是在远程设置更新时)检查覆盖首选项
browser.startup.homepage_override.once
;如果设置了消息 ID,则取消阻止该消息,因为它尚未显示。清除覆盖首选项。运行消息通过定位并选择一条消息。
立即阻止所选的消息。
当消息在启动时显示时
清除覆盖首选项。
时刻页面的示例¶
测试时刻页面¶
通过开发者工具:¶
在搜索选项卡中转到
about:config
,将browser.newtabpage.activity-stream.asrouter.devtoolsEnabled
设置为true
打开一个新标签页,在搜索选项卡中转到
about:asrouter
在开发者工具中,从
panel_local_testing
作为提供程序选择并显示消息您应该看到带有
"template": "update_action"
的示例 JSON 消息。您可以直接在文本区域中修改消息或通过粘贴自定义消息 JSON 进行修改。为了测试,请将配置中的id
属性保持与修改的消息相同。单击
Modify
会更新覆盖首选项browser.startup.homepage_override.once
并配置消息系统在下次浏览器重启时打开消息配置中的时刻 URL。确保所有必需的属性都根据 时刻架构 进行了覆盖
重启 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"
}