Skip to content

高级设置

fang5566 edited this page Feb 24, 2021 · 69 revisions

返回维基首页


“高级设置 ” 页面所包含的设置要么还处于实验阶段,要么适合那些对如何更多控制 uBO 内部运作感兴趣的高级用户。

这些高级设置只有在勾选了控制面板 设置 版块下的 “我是高级用户” 选项后才可访问。此后即使取消勾选“我是高级用户”,也仍会保持启用状态:

点击 齿轮 图标

所有可用的高级设置将稍后介绍。请注意这些设置今后可能会做修改或删除,或有新的设置加入。

如果你要重置特定设置为默认值,只需将值删除,uBO 会将默认值填充进去。

如果你要重置所有设置为默认值,请全部删除,然后点击 “应用更改” 按钮。

**重要提示:**部分高级设置由于仅供开发阶段内部使用,或还没决定好长期使用,就不提供文档介绍了。所以请勿提交它们的 issue -- issue 在没有进一步评论的情况下会被关闭。


allowGenericProceduralFilters

默认值:false

适用于 uBO 1.20 及更高版本。

如果设置为 true,通用的过程式修饰规则将不再因无效而被丢弃。

无论何时启用或禁用,用户都责任知道该设置将强制重新载入所有过滤规则列表,使得 uBO 可以区别处理现有的通用过程式修饰规则。


assetFetchTimeout

默认值:30

远端服务器响应请求失败多少秒后 uBO 显示错误消息。


autoCommentFilterTemplate

默认:{{date}} {{origin}}

适用于 uBO 1.17.7b2 及更高版本。

通过记录台里的元素选择器创建规则时,在自定义静态规则版块提供模板用于创建注释。

占位符用 {{...}} 表示。目前只支持以下三种占位符:

  • {{date}}:将被替换为当前日期
  • {{time}}:将被替换为当前时间
  • {{hostname}}:将被替换为创建规则对应 URL 的主机名
  • {{origin}}:将被替换为创建规则对应 URL 的起始部分
  • {{url}}: 1.30.3b6 版本新增的占位符,将被替换为从元素选择器创建规则对应页面的完整 URL。对于从记录台创建的规则,则被替换为 URL 的起始部分。

如果 autoCommentFilterTemplate 里找不到任何占位符,则自动注释功能会被禁用。这样我们就可使用 -none 来禁用自动注释。


autoUpdateAssetFetchPeriod

默认值:120

自动更新程序启动,且需更新的资源被获取时,获取下一个需更新的资源之前所等待的秒数。该延迟有助于减轻加载、解析和编译已更新的规则列表时带来的 CPU 和内存资源占用压力。


autoUpdateDelayAfterLaunch

默认值: 180

适用于 uBO 1.20.0 及更高版本。

uBO 启动以后,在自动更新会话[1]开始之前所等待的秒数。

[1]“更新会话”表示 uBO 将查找并更新任何视为过期的资源。


autoUpdatePeriod

默认值:4 小时

1.32.5rc0 版本之前是 4 小时

每次更新会话发生的小时间隔。自动更新功能启用时,uBO 将始终在启动后的数分钟内打开一个更新会话。一旦首次更新会话完成,uBO 将等待 autoUpdatePeriod 设定的小时数之后再开始一个新的更新会话。


benchmarkDatasetURL

默认值:unset

适用于 uBO 1.25.2 及更高版本。

要获取的 benchmark dataset URL,使得可以从发布版的 uBO 启动基准测试操作,而不只是从本地构建版本中启动。

Dataset 是 "whotracks.me" 发布的一系列 requests_top500.json.gz 数据集 URL,用于进行 Adblockers 性能研究

建议你下载这个数据集,解压缩以后用本地 URL 指向它,以免滥用远端服务器的带宽。对于 Chromium 类浏览器,你可以使用 file:///这样的 URL 指向本地的副本。至于 Firefox,你得建一个简单的 HTTP 服务器,然后创建 http://localhost:8000/[...] 这样的 URL 指向本地的副本。

Benchmark 是 uBO 的内部基准测试之一:

基准测试可以在浏览控制台后台执行。

consoleLogLevel 必须设置为 info 才能真正打印出结果。 该问题已在 1.25.1b7 版本中得到修复。


blockingProfiles

默认值:11111/#F00 11010/#C0F 11001/#00F 00001

1.31.3b13 版本之前是:11111/#F00 11011/#C0F 11001/#00F 00001(已设置 3p 的重新载入操作比特位)

1.22.0 版本之前是:11101 11001 00001

该设置从 1.21.0 版本开始引入,1.21.7b6 版本之后可根据 uBO 图标角标颜色对应不同的屏蔽模式。从 1.31.3bc13 版本开始,当 3p 屏蔽模式放宽时,uBO 尝试自动重新载入 CSS 样式,而无需重新载入整个页面。

该选项可用于配置“放宽屏蔽模式”(Relax blocking mode)键盘快捷键的层叠状态,以及对应的角标颜色。

默认值包含四个颜色代码,不同代码以空格区隔开来,代表四种屏蔽模式

困难模式 +
禁止脚本生效
中等模式 +
禁止脚本生效
中等模式 默认
11111/#F00 11011/#C0F 11001/#00F 00001

每个代码由不同的比特位组成,比特位表示功能的状态(1 表示已屏蔽/已启用,0 表示未屏蔽/已禁用),还有一个可选择的分隔符 /,后面是 CSS 颜色值[1]

第三方框架 第三方脚本 第三方 禁止脚本生效 重新载入操作 分隔符 CSS 颜色值[1]

按下“放宽屏蔽模式”可将当前 uBO 状态与 blockingProfiles 代码从左到右进行比较,如果不同则重新生效,接着如果“重新载入操作”是启用的话,则重新载入页面,最后重新调整 uBO 的图标角标颜色。

[1]: 颜色 的 CSS 数据类型


cacheControlForFirefox1376932

默认值:no-cache, no-store, must-revalidate

适用于 uBO 1.17.0 及更高版本。

配置 uBO 在应对浏览器 bug(参见 #229)时如何影响缓存机制的方式。

可用的值:

  • no-cache, no-store, must-revalidate

    • 一些不利的影响:部分文档本身 uBO 需以过滤规则或规则列表形式插入 CSP 命令,这类文档不可离线使用。
  • no-cache:

    • 一些不利的影响:每次 uBO 需以过滤规则或规则列表形式插入 CSP 命令时,用户都需要跳过缓存重新载入页面。请注意跳过缓存重新载入不仅影响文档本身,也影响文档内的二级资源。
  • unset:

    • 该值从 1.22.0 版本开始引入,表示关闭此路径。

相关的浏览器问题:


cacheStorageAPI

默认值:unset

1.18.6 版本开始支持 Firefox。

如果设置为 browser.storage.local,uBO 将使用 WebExtensions 存储作为缓存存储后端。

此外,如果 IndexedDB 出于各种原因无法使用,uBO 将退而使用browser.local.storage

仅适用于 Chromium 平台的 uBO 1.18.2 及更高版本。

如果设置为 indexedDB,uBO 将使用 IndexedDB 作为缓存存储的后端,潜在地提升性能并减少内存占用。详细情况参见 #328。 它额外带来的不良影响是在无痕浏览模式下过滤规则列表会显示为过期,参见 #399

如果设置为 unset,uBO 则会根据当前平台选择最佳存储后端。


cacheStorageCompression

默认值:true

适用于 uBO 1.16.21 及更高版本。

如果设置为 true,uBO 会在保存到缓存之前对数据以 lz4 格式进行压缩。缓存是用来存储已下载的过滤规则列表、已编译的过滤规则列表和快照。 该设置在 IndexedDB 用作缓存存储后端时生效(默认支持 Firefox 和 Firefox for Android)。相关讨论参见 #141


cloudStorageCompression

默认值:true1.30.9rc2 版本之前是 false

该选项是 1.29.3b7 版本开始引入的。

启用数据压缩后发送至云端存储的功能。


cnameIgnore1stParty

默认值:true

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

该选项用于设置当 CNAME 主机名对于主机别名来说是第一方时,uBO 是否忽略并通过过滤引擎重新运行网络请求。


cnameIgnoreExceptions

默认值:true

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

被过滤规则设置为例外时,网络请求是否可跳过解除隐藏 CNAME。

对于解除隐藏 CNAME 后,例外规则被渲染为无效可能导致网页过度破损来说,该选项是必要的。

例如,google-analytics.com 解除隐藏后是 www-google-analytics.l.google.com,这两个主机名都在 Peter Lowe's list 里,这意味着对于 google-analytics.com 的例外规则(用于修复网页破损)会被渲染为无效,因为解除隐藏会导致网络请求最终被屏蔽。


cnameIgnoreList

默认值:unset

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

可用的值:

  • 用空格分隔的主机名列表。
  • * - 所有主机名。

告知 uBO 不要通过其过滤引擎重运行对应 CNAME 主机名的网络请求。

它有助于排除常用的实际主机名通过 uBO 的过滤引擎被重新运行,避免无意义的开销。


cnameIgnoreRootDocument

默认值:true

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

告知 uBO 跳过根文档的 CNAME 查找。


cnameMaxTTL

默认值:120 分钟

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

告知 uBO 在指定时限之后清除它的 CNAME 缓存。

考虑到效率问题,uBO 会缓存 alias=>CNAME 对应关系以便重新使用,从而减少对 browser.dns.resolve 的调用。所有对应关系都会在指定时间后被清除,确保映射不会增长过度,以及 uBO 可使用最新的 CNAME 信息。


cnameReplayFullURL

默认值:false

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

告知 uBO 是否要回放(replay)整个 URL 还是它初始的部分。

仅回放初始部分意味着更少破坏页面,通过避免重复执行对整个 URL 的模板匹配改善性能 -- 模板匹配最有可能在初始请求时就已经完成。


cnameUncloak

默认值:true

该选项从 1.25.0 版本开始引入。

仅支持 Firefox。

该选项用于设置是否对主机名解除隐藏 CNAME。


cnameUncloakProxied

默认值:false

该选项从 1.26.0 版本开始引入。

仅支持 Firefox,

默认情况下(设置为 false)uBO 检测到网络请求被代理后就不再隐解除隐藏 CNAME。

选项值设置为 true 后可覆盖上述默认的行为。

一旦以下 Firefox issue 被修复,就将取消这条新增的高级设置:https://bugzilla.mozilla.org/show_bug.cgi?id=1618271


consoleLogLevel

默认值:unset

适用于 uBO 1.18.5b1 及更高版本。

仅用于开发。

如果设置为 info,uBO 会将调试消息输出到浏览器控制台。


debugScriptlets

默认值:false

如果设置为 truedebugger; statement 将在小脚本或小脚本插入器代码前插入。


disableWebAssembly

默认值:false

适用于 uBO 1.17.3rc4 及更高版本。

仅用于开发。

如果设置为 true,uBO 会在代码里关闭对 WebAssembly 的优化。


extensionUpdateForceReload

默认值:false

适用于 uBO 1.23.0 及更高版本。

如果设置为 true,则恢复到 1.22.3b(“阻止 uBO 在会话中途重新载入”) 之前版本的更新形式。如果有可用的更新,扩展将无条件重新载入,否则扩展只在明确禁用再启用,或浏览器重新启动之后才重新载入。


filterAuthorMode

正在开发中!请勿提交有关的 issue!

默认值:false

适用于 uBO 1.23.0 及更高版本。

启用一指一点功能,用于在记录台的概要面板中为静态扩充规则(例如修饰规则、小脚本规则和 html 规则)创建临时白名单规则。开关临时白名单规则的按钮会被标记为 #@#

过滤工具窗口

所创建的白名单规则是临时的,重启 uBO 或手动禁用例外规则后该规则会消失。

1.28.0 版本还原了从弹出面板设置 allow 规则的功能。但默认不再允许从弹出面板一指一点创建 allow 规则。原因参见 commit 消息。如果你想临时允许,可以双击 Ctrl 键。


ignoreRedirectFilters

默认值:false

如果设置为 true,uBO 将不再尝试将被屏蔽的网络请求重定向到该资源的本地中立版本。重定向规则的主要目的是将资源屏蔽后导致的网页破损减到最低程度。


ignoreScriptInjectFilters

默认值:false

如果设置为 true,uBO 将不再查找并把小脚本(scriplet)插入到网页。小脚本的主要目的是消除部分网站所使用的反过滤工具机制。


loggerPopupType

默认值:popup

适用于 uBO 1.23.0 及更高版本。

控制记录台在独立窗口启动时所使用的窗口类型。该值主要用于解决缺少/禁用标题栏按钮、窗口尺寸更改、不正确绘制的问题(#663)。

可用的值:

  • popup - 无工具栏的浏览器窗口(默认值)
  • normal - 带有所有工具栏和按钮的普通窗口
  • ChromiumFirefox 文档里定义的其他任何值。

manualUpdateAssetFetchPeriod

默认值:500 毫秒

当点击控制面板 “第三方规则列表” 版块下的 “立即更新” 按钮,该值表示在获取下一个需要更新的内容之前所等待的时间间隔。该延迟有助于担负加载、处理新的过滤规则列表所带来的性能压力,也充分考虑到避免要求远端服务器快速响应所有请求。


popupFontSize

默认值:unset

这是弹出界面所使用的有效 CSS 字体大小值。如果你对默认字体大小值不满意,可以使用该值进行修改。


popupPanelHeightMode

默认值:0

适用于 uBO 1.28.0 及更高版本。

设置为 1 可强制防火墙面板的高度不超过基础面板的高度。

该选项解决了概要面板的剪辑问题 - #785 (评论)


requestJournalProcessPeriod

默认值:1000 毫秒

适用于 uBO 1.16.21b2 及更高版本。

控制 uBO 内部处理其网络请求日志队列的延迟。网络请求日志队列的出现是为了修复 issue 2053

修复该 issue 带来的额外积极效果就是产生了一个在扩展图标上显示已屏蔽请求数量时的延迟(参见 #155)。

设置比默认值更低的延迟会导致原修复的问题复现。


selfieAfter

默认值:3 分钟

适用于 uBO 1.18.6 及更高版本。1.20.0 版本以前默认值是 11 分钟。

这是设置经过多少分钟后再创建 快照(过滤规则优化后的内部表达)。


strictBlockingBypassDuration

默认值:120

适用于 uBO 1.17.3b4 及更高版本。

控制“临时”跳过严格屏蔽的持续时间。


suspendTabsUntilReady

默认值:unset1.18.6 版本之前默认为 false

可设置值包括:

  • unset - 留待平台选择最优行为(默认值) 行为(默认值,Firefox 启用,Chromium 禁用)
  • no - 启动时不暂停(suspend)标签页载入
  • yes - 启动时暂停标签页载入

1.18.6 版本开始 Firefox 可重新配置该值(可禁用)。

在 uBO 1.18.0 和 1.18.6 版本之间该设置仅支持 Chromium。Firefox 因使用 “persistent startup listeners” 该设置现始终启用。

一旦启用,uBO 将在浏览器启动时严格屏蔽所有网络请求,直到 所有 规则列表和规则载入并就绪,在这段时间内 uBO 会强制重新载入在建立阶段有网络请求被屏蔽的标签页。

免责声明:特别是基于 Chromium 的浏览器,即使你开启这项设置,uBO 也无法 100% 保证浏览器启用时所有网络请求都会被屏蔽。这是浏览器设计上的问题,所以请不要在 uBO issue 页面汇报此类问题。

相关的浏览器问题:


uiFlavor

默认值:unset

适用于 uBO 1.25.0 及更高版本。

可用的值:

  • fenix - 强制启用新增的、适配移动端的弹出界面布局。
  • classic - 回滚到旧的弹出界面(1.27.0 版本以前是 -)。
  • unset - uBO 会根据当前平台选择使用最适合的界面特点。

移动端的弹出界面布局


uiPopupConfig

undocumented


uiStyles

默认值:unset

适用于 uBO 1.28.0 及更高的版本。

默认 CSS 样式导致特定用户出现问题时,允许 uBO 跳过使用默认样式。用户有责任确保 uiStyles 的值包含有效的 CSS 属性声明。uBO 会将值设置到 document.body.style.cssText 中。

例如,在 issue #1044 中,用户应设置 uiStyles 值为 font-family: sans-serif 来强制 uBO 的用户界面使用系统字体。另一个例子是 issue #1254,对应 uBO v1.30.0 版本可调整弹出面板的宽度。


uiTheme

默认值:unset

适用于 uBO 1.30.1b3 及更高版本。

仅用于开发!请勿提交该特性有关的 issue! 已锁定只能在 1.31.3b5 开发构建版本中使用。

允许手动覆盖深邃模式主题状态。

可用的值:

  • unset: 根据 uBO 的版本 - 强制使用明亮主题或 uBO 根据浏览器的 prefers-color-scheme 选择主题
  • light:强制使用明亮主题
  • dark: 强制使用深邃主题

updateAssetBypassBrowserCache

默认值:false

适用于 1.22.0 及更高版本。

如果设置为 true,不到一小时就手动1.27.0 获取远程资源时 uBO 会确保跳过浏览器缓存。

目的是方便规则列表维护人员从对其远端位置获取的最新版本列表进行测试。


userResourcesLocation

默认值:unset

一条或多条用空格区隔开的 URL,其内容将被解析为令牌识别资源,用于redirect小脚本插入 (+js(...)) 的目的。

uBO 所期望的有效内容可以在 resources.txt 里查看,其余任何内容都将导致未定义的后果。

任何重复的令牌资源都将导致前一个资源被后一个资源替换。资源文件是按照 URL 样式的顺序载入,而 UBO 的默认资源文件始终最先载入。

额外的资源将在内建的资源文件更新时一并更新。清除 'uBlock filters' 这个内置规则列表的缓存会同时清除内置资源文件的缓存,这样将强制重新载入用户自定义的资源。

该设置是从 1.12.0 版本开始引入的,添加对多条 URL 的支持则从 1.19.0 版本开始引入。

Clone this wiki locally