高级设置 - fang5566/uBlock GitHub Wiki

返回维基首页

索引:

“高级设置 ” 页面所包含的设置要么还处于实验阶段,要么适合那些对如何更多控制 uBlock Origin(uBO) 内部运作感兴趣的高级用户。我不保证任何单个或组合设置正常使用,它们随时会被修改或删除。如果发现部分自定义的设置产生负面的影响,用户请自行解决。部分高级设置我特意不提供文档介绍,所以请勿提交它们的 issue。

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

点击 齿轮 图标

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

如果你要重置特定设置为默认值,只需将值删除,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

默认值:15

1.53.1b1 版本之前是 60 秒。 1.39.3b0 版本之前是 120 秒。

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


autoUpdateDelayAfterLaunch

默认值: 105

1.39.3b0 版本之前是 180 秒。

适用于 uBO 1.20.0 及更高版本。

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

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


autoUpdatePeriod

默认值:1 小时

1.53.1b1 版本之前是 2 小时。 1.48.1b7 版本之前是 4 小时。 1.32.5rc0 版本之前是 7 小时。

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


benchmarkDatasetURL

默认值:unset

适用于 uBO 1.25.2 及更高版本。

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

最近所使用的数据集可以在这里找到:https://github.com/mjethani/scaling-palm-tree/,你可以在本地下载 requests.json 并保存为一个原始的文本文件。

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

如要启动基准测试,请进入控制面板的 支持 版块,点击 更多 按钮。这时会打开一个新标签页显示各种各样的开发工具,其中一个是 SFNE: Benchmark,它就是用上述 URL 里的数据执行对静态网络过滤引擎的基准测试,针对的是当前所启用的过滤规则列表。


blockingProfiles

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

1.31.3b13 版本之前是:11111/#F00 11011/#C0F 11001/#00F 00001(针对第三方已启用重新载入操作比特位)

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 版本开始引入,表示关闭对缓存头部的修改。

相关的 Firefox 问题:


cacheStorageAPI

经过 1.56-1.57 版本对存储进行重新设计之后,该设置仅用于开发

Changelog

默认值:unset

1.18.6 版本开始支持 Firefox。

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

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

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

如果设置为 indexedDB,uBO 将使用 IndexedDB 作为缓存的后端,潜在提升性能并减少内存占用。详见 #328。不利影响是在 Chrome 的无痕浏览模式下规则列表会显示为过期,参见 #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 的过滤引擎在解除隐藏 CNAME 后是否要回放(replay)整个 URL 还是它初始的部分。

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


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

debugScriptletInjector

默认值:false

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


disableWebAssembly

默认值:false

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

仅用于开发。

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


extensionUpdateForceReload

默认值:false

适用于 uBO 1.23.0 及更高版本。

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


filterAuthorMode

默认值:false

这是 1.47.5b7 版本新增的设置。如果设置为 true,点击右键出现的菜单会显示一个“查看源代码...” 的选项。

1.28.0 及之后的版本默认不再允许从弹出面板一指一点创建 allow 规则。启用该设置可以还原为原来的行为。如果你想临时允许,可以双击 Ctrl 键。

1.23.0-1.45.3rc1.

该设置是 1.23.0 版本新增的“摘录者小部件”,在 1.45.3rc2/1.46 版本被移出高级设置,参见记录台/临时例外规则


loggerPopupType

默认值:popup

适用于 uBO 1.23.0 及更高版本。

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

可用的值:

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

manualUpdateAssetFetchPeriod

默认值:500 毫秒

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


modifyWebextFlavor

默认值:unset

1.38.7b3 版本开始引入。

可取值:一系列用空格分隔的令牌,令牌可在经过计算的默认 webext 布局中添加或删除。

允许规则列表作者在桌面计算机测试移动端的页面布局。虽然浏览器的开发工具可以模拟出网页的移动端版本,但 uBO 本身却做不到。

通过将值设为 +mobile,该设置可强制 uBO 表现得像在移动设备上运行一样。

重要提示:该设置最好是在一个专门的浏览器配置里使用,因为它会影响规则列表编译。所以最好是新建一个配置开启该设置,然后强制所有规则列表重新编译,并在今后有需要测试特定的 webext 布局时使用这个配置。


popupFontSize

默认值:unset

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


popupPanelHeightMode

默认值:0

适用于 uBO 1.28.0 及更高版本。

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

该设置解决了概要面板被裁减的问题 - #785 (评论)


popupPanelOrientation

默认值:unset

适用于 uBO 1.56.1b15 及更高版本。

支持的值:

  • unset:由 uBO 决定选择哪个模式
  • landscape: 弹出面板强制为横向模式
  • portrait: 弹出面板强制为竖向模式

requestJournalProcessPeriod

默认值:1000 毫秒

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

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

该修复带来的额外积极效果就是扩展图标可延迟显示已屏蔽请求数量(参见 #155)。

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


requestStatsDisabled

默认值:false

适用于 uBO 1.56.1b8 及更高版本。

该选项用于设置是否保存“自安装后已拦截”的数量。如果设置为 true,“自安装后已拦截”的数量显示的是自 uBO 启动后已屏蔽的请求数量,浏览器关闭后该数量会重置。该设置主要用于修复 issue 3100


selfieAfter

默认值:2 分钟

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

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


strictBlockingBypassDuration

默认值:120

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

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


trustedListPrefixes

默认值:稳定版本下是 ublock-,开发版本下是 ublock- user-

适用于 uBO 1.52.3rc2 及更高版本。

一系列用空格分隔的令牌列表,用于指定哪些列表被认为值得信任。

可用的值:

  • ublock-:仅信任 uBO 的列表,不包括 自定义静态规则 在内的其他任何列表(默认值)
  • ublock- user-: 信任 uBO 的列表和 自定义静态规则 里的内容
  • -:不信任任何列表,基本上是禁用所有需要获取信任的规则(或许管理员或不相信我的用户会用到)

你也可以决定信任其他人维护的列表。例如,如果要信任自带的 AdGuard 列表,可以添加 adguard-。如果要信任自带的 EasyList 列表,可以添加 easylist-

如果要信任特定区域的自带列表,可以在 assets.json 里找到它的令牌并添加到 trustedListPrefixes

匹配的方法是使用 String.startsWith(),这就是为什么 ublock- 会匹配所有 uBO 自带的规则列表。

导入的列表也可以被信任。例如你可以添加 https://filters.adtidy.org/extension/ublock/filters/ 信任所有非自带的 AdGuard 列表。

添加所要导入列表的完整 UL 可以仅仅信任该份列表。

https://file:/// 打头的 URL 会被拒绝,例如 http://example.org/ 这样的。

无效的 URL 会被拒绝。


uiPopupConfig

默认值:unset1.39.2 版本之前是 不做介绍

1.27.0 版本开始引入。

覆盖 uBO 的弹出界面配置。

值可以是一个或多个用空格分隔的令牌:

  • +captions/-captions:启用/或禁用标题
  • +no-popups/-no-popups:启用或禁用禁止弹窗生效的开关
  • +logger/-logger1.39.1b1 版本新增,可启用或禁用记录台按钮。

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 1.30.0 版本可调整弹出面板的宽度。


updateAssetBypassBrowserCache

默认值:false

适用于 1.22.0 及更高版本。

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

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


userResourcesLocation

默认值:unset

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

2023-04-08 13-25-44 时的截图

uBO 所期望的有效内容可以在 scriptlets.js 里查看,其余任何内容都将产生不确定的后果。

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

额外的资源将在自带的资源文件更新时一并更新。清除 'uBlock filters' 这个列表的缓存会同时清除所有自带资源文件的缓存,也将强制重新载入用户自定义的资源。

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


已移除的
已移除的设置:

cnameUncloak

该设置已在 1.34.0 版本被移除,弃用原因是在控制面板的设置版块已添加 “将代理域名映射至真实域名” 选项设置。

1.25.0 版本开始引入。

仅支持 Firefox。

是否启用解除隐藏主机名 CNAME 的功能。


ignoreRedirectFilters

已在 1.35 版本被移除。可以通过例外规则禁用。


ignoreScriptInjectFilters

已在 1.35 版本被移除。可以通过例外规则禁用。


suspendTabsUntilReady

因添加到控制面板 -> 规则列表中 “暂停网络活动直至所有规则列表都被载入” 选项,该设置在 1.40.3b1 版本中已被移除。

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

可用的值:

  • unset - 留待平台选择最优行为(Firefox 里是暂停网络请求,Chrome 里是重新载入活动标签页)
  • no - 启动时不暂停标签页载入
  • yes - 启动时暂停标签页载入

一旦启用,uBO 将在浏览器启动时尝试暂停(Firefox)或屏蔽(Chrome)所有网络请求,直到 所有 规则列表和规则载入并就绪。

如果禁用,或处于不支持可暂停的网络请求监听器的环境(Chrome),在建立阶段有网络请求被屏蔽的活动标签页都将会重新载入一遍。

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

相关的浏览器问题:

它的历史:


uiFlavor

默认值:unset

适用于 uBO 1.25.0 及更高版本。

可用的值:

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

移动端的弹出界面布局


uiTheme

默认值:unset

适用于 uBO 1.30.1b31.40.9b8 之间的版本。

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

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

可用的值:

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