首选项¶
首选项分支¶
活动流的首选项分支为 browser.newtabpage.activity-stream.
。在首选项配置中定义的任何首选项都将相对于该分支。例如,如果一个首选项以名称 foo
定义,那么它在 about:config
中显示的完整首选项将为 browser.newtabpage.activity-stream.foo
。
定义新首选项¶
活动流的所有首选项都应在 lib/ActivityStream.sys.mjs
中找到的 PREFS_CONFIG
数组中定义。配置对象应具有 name
(首选项的名称)、title
(描述首选项功能)和 value
(首选项的默认值)。可选地,可以提供 getValue
函数以根据参数(例如,地理位置和语言环境)动态生成默认的首选项值。对于开发者特定的默认值,可选的 value_local_dev
将代替 value
使用。例如
{
name: "telemetry.log",
title: "Log telemetry events in the console",
value: false,
value_local_dev: true,
getValue: ({geo}) => geo === "CA"
}
重要:为 Mozilla Central 设置测试特定值¶
如果某个首选项后面的 Feed 或功能进行任何网络调用或对自动化测试有其他干扰,并且该首选项默认处于启用状态,请确保在 Mozilla Central 中将其禁用以进行测试。
您应该在 Bugzilla 中创建一个错误和一个补丁,该补丁添加行以在以下文件中关闭您的首选项
layout/tools/reftest/reftest-preferences.js
testing/profiles/prefs_general.js
testing/talos/talos/config.py
您可以在 此补丁 中看到一个示例。
从 .sys.mjs
读取、设置和观察首选项¶
要读取/设置/观察活动流首选项,请构造一个在 lib/ActivityStreamPrefs.sys.mjs
中找到的 Prefs
实例。
// Import Prefs
const { Prefs } = ChromeUtils.importESModule(
"resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs"
);
// Create an instance
const prefs = new Prefs();
Prefs
实用程序默认情况下会为您设置活动流分支,因此您无需担心在每个首选项前添加 browser.newtabpage.activity-stream.
。
const prefs = new Prefs();
// This will return the value of browser.newtabpage.activity-stream.foo
prefs.get("foo");
// This will set the value of browser.newtabpage.activity-stream.foo to true
prefs.set("foo", true);
// This will call aCallback when browser.newtabpage.activity-stream.foo is changed
prefs.observe("foo", aCallback);
// This will stop listening to browser.newtabpage.activity-stream.foo
prefs.ignore("foo", aCallback);
有关可用方法的更多信息,请参阅:searchfox:toolkit/modules/Preferences.sys.mjs <source/toolkit/modules/Preferences.sys.mjs>
。
Discovery Stream 首选项¶
Discovery Stream 特定的首选项嵌套在子分支 browser.newtabpage.activity-stream.discoverystream
下(browser.newtabpage.blocked
除外)。
browser.newtabpage.activity-stream.discoverystream.flight.blocks
¶
类型:
string (JSON)
默认值:
{}
首选项类型:AS
不适用于用户配置,但会以编程方式更新。用于在用户关闭 SPOC 时跟踪被阻止的航班 ID。键是航班 ID。值没有特定含义。
browser.newtabpage.blocked
¶
类型:
string (JSON)
默认值:
null
首选项类型:AS
不适用于用户配置,但会以编程方式更新。用于在用户关闭某个故事时跟踪被阻止的故事 ID。键是故事 ID。值没有特定含义。
browser.newtabpage.activity-stream.discoverystream.config
¶
类型
string (JSON)
默认值
{ "api_key_pref": "extensions.pocket.oAuthConsumerKey", "collapsible": true, "enabled": true, "personalized": true, }
api_key_pref
(字符串):包含 Pocket API 密钥的变量的名称。collapsible
(布尔值):控制新标签页中的部分是否可以折叠。enabled
(布尔值):控制是否启用 DS,并根据用户的语言环境以编程方式设置。DS 启用是此值和browser.newtabpage.activity-stream.discoverystream.enabled
的值的逻辑AND
。personalized
(布尔值):当此值为true
时,将显示基于浏览历史的个性化内容。unused_key
(字符串):默认情况下不设置,并且此代码库不使用。这是一种标准化的方法来区分配置,以防止实验参与者退出。
browser.newtabpage.activity-stream.discoverystream.enabled
¶
类型:
boolean
默认值:
true
首选项类型:Firefox
当此设置为 true
时,如果 enabled
在 browser.newtabpage.activity-stream.discoverystream.config
上也为 true
,则会显示 Discovery Stream 体验。否则将显示旧的活动流体验。
browser.newtabpage.activity-stream.discoverystream.endpointSpocsClear
¶
类型:
string (URL)
默认值:
https://spocs.getpocket.com/user
首选项类型:AS
当用户选择退出赞助内容时,用于从广告服务器删除相应数据的端点。
browser.newtabpage.activity-stream.discoverystream.endpoints
¶
类型:
string (URLs, CSV)
默认值:
https://getpocket.cdn.mozilla.net/,https://spocs.getpocket.com/
首选项类型:AS
Discovery Stream 允许用于远程内容(例如:故事元数据)和配置(例如:实验的远程布局定义)的端点列表。
browser.newtabpage.activity-stream.discoverystream.hardcoded-basic-layout
¶
类型:
boolean
默认值:
false
首选项类型:Firefox
如果此值为 false
,则使用默认的硬编码布局,如果此值为 true
,则使用备用硬编码布局(当前模拟旧的 AS 体验)。
browser.newtabpage.activity-stream.discoverystream.rec.impressions
¶
类型:
string (JSON)
默认值:
{}
首选项类型:AS
以编程方式生成的哈希表,其中键是推荐 ID,值是表示首次展示的时间戳。
browser.newtabpage.activity-stream.discoverystream.spoc.impressions
¶
类型:
string (JSON)
默认值:
{}
首选项类型:AS
以编程方式生成的哈希表,其中键是赞助内容 ID,值是每次展示的时间戳数组。
browser.newtabpage.activity-stream.discoverystream.locale-list-config
¶
类型:
string (CSV, locales)
默认值:
null
首选项类型:Firefox
一个逗号分隔的语言环境列表,默认情况下,这些语言环境在新标签页中启用了故事。它覆盖了 region-stories-config 中可能存在的内容。因此,如果我将其设置为“en-US,en-CA,en-GB”,则所有使用英语浏览器的用户都会看到新标签页故事,即使他们的区域不在 region-stories-config 列表中。
browser.newtabpage.activity-stream.discoverystream.region-stories-config
¶
类型:
string (CSV, regions)
默认值:
US,DE,CA,GB,IE,CH,AT,BE
首选项类型:Firefox
一个逗号分隔的地理位置列表,默认情况下,这些地理位置在新标签页中启用了故事。它将客户端的地理位置与该列表匹配,然后查找匹配的语言环境。
browser.newtabpage.activity-stream.discoverystream.region-spocs-config
¶
类型:
string (CSV, regions)
默认值:
US,CA,DE
首选项类型:Firefox
在新标签页中默认启用 spocs 的地理位置的逗号分隔列表。它将客户端的地理位置与该列表进行匹配。
browser.newtabpage.activity-stream.discoverystream.region-layout-config
¶
类型:
string (CSV, regions)
默认值:
US,CA,GB,DE,IE,CH,AT,BE
首选项类型:Firefox
在新标签页中启用 7 行故事的地理位置的逗号分隔列表。它将客户端的地理位置与该列表进行匹配。
browser.newtabpage.activity-stream.discoverystream.region-basic-layout
¶
类型:
boolean
默认值:false
首选项类型:AS
如果设置为true
,则启用故事的新标签页将显示 1 行。它根据 region-layout-config 的结果以编程方式设置。
browser.newtabpage.activity-stream.discoverystream.spocs-endpoint
¶
类型:
string (URL)
默认值:
null
首选项类型:Firefox
覆盖以指定 SPOCs 的端点。将优先于远程和硬编码布局 SPOC 端点。
browser.newtabpage.activity-stream.discoverystream.personalization.version
¶
类型:
integer
默认值:
1
首选项类型:Firefox
这控制我们应该使用哪个版本的个性化来为新标签页故事评分。
browser.newtabpage.activity-stream.discoverystream.personalization.modelKeys
¶
类型:
string (CSV)
默认值:
nb_model_arts_and_entertainment, nb_model_autos_and_vehicles, nb_model_beauty_and_fitness, nb_model_blogging_resources_and_services, nb_model_books_and_literature, nb_model_business_and_industrial, nb_model_computers_and_electronics, nb_model_finance, nb_model_food_and_drink, nb_model_games, nb_model_health, nb_model_hobbies_and_leisure, nb_model_home_and_garden, nb_model_internet_and_telecom, nb_model_jobs_and_education, nb_model_law_and_government, nb_model_online_communities, nb_model_people_and_society, nb_model_pets_and_animals, nb_model_real_estate, nb_model_reference, nb_model_science, nb_model_shopping, nb_model_sports, nb_model_travel
首选项类型:Firefox
这是个性化版本 2 的配置。它是算法用来根据主题对故事进行评分的主题列表。
browser.newtabpage.activity-stream.discoverystream.recs.personalized
¶
类型:
boolean
默认值:false
首选项类型:Firefox
这控制新标签页故事个性化是否包含常规故事。有关赞助内容,请参阅 spocs.personalized。
browser.newtabpage.activity-stream.discoverystream.spocs.personalized
¶
类型:
boolean
默认值:true
首选项类型:Firefox
这控制新标签页故事个性化是否包含赞助内容。有关常规故事,请参阅 recs.personalized。
browser.newtabpage.activity-stream.discoverystream.isCollectionDismissible
¶
类型:
boolean
默认值:true
首选项类型:Firefox
这控制新标签页故事集是否可关闭。
browser.newtabpage.activity-stream.feeds.section.topstories
¶
类型:
boolean
默认值:true
首选项类型:Firefox
这控制用户是否应该看到新标签页故事。它由用户通过 about:preferences#home 设置。
browser.newtabpage.activity-stream.feeds.system.topstories
¶
类型:
boolean
默认值:false
首选项类型:AS
不适用于用户配置,但以编程方式设置。它还控制用户是否应该看到新标签页故事。它在运行时设置,并根据语言环境/区域计算。