首页/新闻资讯/正文详情

Search 浏览器内置广告拦截器指南:WKContentRuleList 网络层拦截为何零开销

发布时间:2026/9/26 15:45:45 来源:云帆数科 栏目:资讯中心
Search 浏览器内置广告拦截器指南:WKContentRuleList 网络层拦截为何零开销
Search 浏览器内置广告拦截器指南WKContentRuleList 网络层拦截为何零开销【免费下载链接】SearchA small, fast WebKit browser for macOS, by Office Commun.项目地址: https://gitcode.com/gh_mirrors/search59/SearchSearch 是一款轻量快速的 macOS WebKit 浏览器约 3 MB由 Office Commun 出品。它内置的广告拦截器基于WKContentRuleList实现规则在启动时只编译一次拦截发生在 WebKit 的网络层——请求还没发出去就已被丢弃运行时开销近乎为零。本文用大白话讲清楚这套网络层广告拦截为什么比常见的 JS 注入式拦截更快、更省电以及你如何开关和按站点关闭它。先搞懂广告拦截的两种做法浏览器拦截广告通常有两条路JS 注入式页面加载后往页面里注入一段 JavaScript动态查找并隐藏广告元素。广告往往先出现再消失而且脚本要跟随页面跑占用 JS 线程、消耗 CPU。网络层拦截在请求发出之前就判断这个地址是不是广告/跟踪器是则直接丢弃。页面里根本没有东西可渲染也就没有先渲染再隐藏的浪费。Search 走的是第二条路核心是 macOS 系统 WebKit 框架自带的WKContentRuleListAPI——这是 Safari 同款引擎的标准能力不是第三方库。WKContentRuleList 为什么快一张表看懂对比维度JS 注入式拦截WKContentRuleList 网络层拦截Search 的做法拦截时机页面加载后、脚本运行时请求发出之前CPU 开销每个页面持续执行 JS规则只编译一次之后由 WebKit 网络栈匹配应用几乎不参与用户体验广告可能闪一下再消失广告从未存在页面无闪烁流量/加载广告资源可能已下载请求直接被丢弃省流量省时间出错方式脚本与页面互相干扰规则是白名单式的行为稳定、可预期一句话总结JS 拦截是事后补救网络层拦截是事前拦截。事后补救永远比事前拦截贵。Search 是怎么做的三个关键点1. 规则只编译一次缓存在系统里启动时Search 把拦截规则交给 WebKit 编译标识符固定为office-shieldstore.compileContentRuleList( forIdentifier: office-shield, encodedContentRuleList: json )编译完成后WKContentRuleList由系统缓存在磁盘上。下次启动直接复用已编译好的清单——所以编译这个动作的代价是一次性的日常浏览时它不存在。编译逻辑在 Shield.swift#L111-L126而启动即编译的调用在 Browser.swift#L739-L743。2. 只拦第三方不碰网站自己的内容规则清单里内置了一份只干两件事看你、卖广告的第三方域名doubleclick.net、googlesyndication.com、hotjar.com、amplitude.com 等 40 多个匹配时带有third-party条件trigger: { url-filter: ^https?://([^/]\\.)?(escaped), load-type: [third-party] }, action: { type: block }也就是说一个站点自己的脚本、图片照常加载被拦的只是从别处来、只为跟踪和展示广告的第三方请求。清单定义在 Shield.swift#L57-L70。3. 外观隐藏规则刻意保持精简除了拦请求还有一条css-display-none规则隐藏少数百分之百是广告位的节点如.adsbygoogle、iframe[src*doubleclick.net]。代码注释里写得很直白外观类规则宁少勿多——清单一激进拦截器就会开始吃页面把正常内容也藏掉。这份克制的设计在 Shield.swift#L72-L80。快速上手如何开启或按站点关闭拦截广告拦截默认开启不需要任何设置。想管理它打开设置 › 隐私可以看到 Block ads and trackers 总开关页面打开时还会多出一个 Block on 当前站点 开关——某个网站的结账流程、视频被拦坏了只在这里单独关掉页面自动重载其他站点不受影响如果规则编译失败极少见设置页会明确显示 Nothing is being blocked until this clears 并提供 Try again 按钮而不是悄悄不拦截。按站点暂停的设置项位于 Settings.swift#L371-L394。 小技巧单站点关闭后规则会在下一次导航时生效tune在导航决策处重新挂/摘规则无需重启浏览器。见 Browser.swift#L1961-L1968。源码导读广告拦截的全部代码在这几个文件里Search 坚持一个文件管一件事整个拦截器只涉及四处文件职责Shield.swift拦截器本体域名清单、规则编译、按站点开关Tab.swift#L468每个新标签页创建时领取拦截器Shield.shared.protectBrowser.swift#L1967每次导航前为目的地站点决定规则挂上还是摘下Settings.swift#L374设置页里的总开关与按站点开关项目对这套方案的定位写在 README.md#L88The ad blocker is aWKContentRuleListcompiled once at launch and enforced inside WebKits networking, before a request is made — zero cost at run time, unlike a JavaScript blocker.常见问题Q拦截器会不会误伤正常内容A只拦第三方广告/跟踪域名 极少数确定的广告位选择器站点自身内容不动。真遇到坏掉的网站用Block on 该站点开关单独关闭即可。Q为什么不直接内置 uBlock Origin 那种完整过滤引擎A那是设计取舍。Search 追求小而快整个应用约 3 MB、纯 Swift、无第三方依赖。内置拦截器覆盖最常见的广告与跟踪场景重度过滤需求可以通过它自带的 Chrome 扩展支持解决设置 › 扩展。Q它真的完全无性能损耗吗A规则匹配发生在 WebKit 网络栈内部由系统 C 层完成应用进程不参与、不跑脚本已编译清单还缓存在磁盘。日常感受就是页面变轻了而不是多跑了一个后台程序。小结Search 的广告拦截器是零配置、零干扰、零运行时开销的典范快拦截发生在请求发出之前广告根本没有下载和渲染省规则一次编译、系统缓存浏览过程无 JS 参与稳只针对第三方域名 极简外观规则误伤面小可控全局开关 按站点开关坏了哪里关哪里。如果你想要一个打开就是干净页面的浏览器Search 内置的 WKContentRuleList 广告拦截值得你直接用默认设置——它甚至不需要你知道它的存在。【免费下载链接】SearchA small, fast WebKit browser for macOS, by Office Commun.项目地址: https://gitcode.com/gh_mirrors/search59/Search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

TB9120AFTG驱动双极步进电机:原理、调参与实战总结
TB9120AFTG驱动双极步进电机:原理、调参与实战总结

双极步进电机这个东西,在很多自动化项目里都是“看起来简单、用起来闹心”的典型。给它一个脉冲它就转一个角度,听起来毫无难度,但真开始做之后,噪音、发热、丢步、共振,一套组合拳下来能把人折腾到怀疑人生。这段时间… · 2026/9/26 15:45:45

接近开关选型接线与故障排除实战指南
接近开关选型接线与故障排除实战指南

1. 接近开关到底是个什么东西干自动化这行十几年,接近开关是我见过最“不起眼但离了它真不行”的元件之一。它不像PLC那样引人注目,也不像伺服电机那样动辄上热搜,但产线上十台设备里有八台都藏着它——限位、计数、测速、定位、安全门检测&a… · 2026/9/26 15:45:45

【YOLOv9改进[Conv]】用Haar小波变换Down_wt替换Conv与ADown的配置文件实践:从config.toml骨架到TaoToken统一Key接入
【YOLOv9改进[Conv]】用Haar小波变换Down_wt替换Conv与ADown的配置文件实践:从config.toml骨架到TaoToken统一Key接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 15:45:39

【电机滤波代码3】新息协方差自适应扩展卡尔曼滤波(EKF)原理与MATLAB例程:PMSM电流测量噪声在线调整。订阅专栏后可查看完整代码,包运行成功
【电机滤波代码3】新息协方差自适应扩展卡尔曼滤波(EKF)原理与MATLAB例程:PMSM电流测量噪声在线调整。订阅专栏后可查看完整代码,包运行成功

如需帮助,或有滤波相关的MATLAB代码定制需求,可从个人主页左侧联系我 订阅专栏后,可直接查看源代码,粘贴到MATLAB空脚本中即可直接运行、得到结果 文章目录 运行结果 MATLAB源代码 程序详解 算法原理 核心公式 实现流程 参数说明 输出说明 运行结果 转速与位置估计图:对比… · 2026/9/26 16:25:21

从医疗到电商,AI 搜索如何重构产业价值?附真实案例与数据
从医疗到电商,AI 搜索如何重构产业价值?附真实案例与数据

在数字信息呈指数级增长、用户注意力成为稀缺资源的当下,AI搜索已完成从辅助工具到产业变革核心动力的蜕变。相较于传统搜索依赖“关键词匹配”的浅层逻辑,新一代AI搜索依托深度学习驱动的语义理解、多维度知识图谱构建等核心技术,实现了从“… · 2026/9/26 16:25:21

Java程序员轻松转型AI Agent:收藏这份保姆级学习路线,稳拿高薪Offer!
Java程序员轻松转型AI Agent:收藏这份保姆级学习路线,稳拿高薪Offer!

本文详细介绍了Java程序员如何顺利转型AI Agent开发。作者从自身经验出发,提供了从认知阶段到工程化落地的完整学习路线,包括打通认知、Prompt工程、RAG技术、Agent核心能力及工程化部署等五个阶段,帮助读者系统学习并掌握AI Agent开发技能。… · 2026/9/26 16:25:21

橡胶软接头厂家怎么选:先核对生产、检验和交付资料!
橡胶软接头厂家怎么选:先核对生产、检验和交付资料!

选橡胶软接头厂家,先看它能不能把生产、检验、交付三类资料对应到你要的这一批产品,而不是先听宣传。可以优先把"能给出目标型号规格表、能把检验记录落到批次、能把交期与随货文件写进合同"的供应方纳入候选;前提是你已经明确介质、温度、压力、口径和接口这几项工况… · 2026/9/26 16:25:21

杭州广受信赖的职务犯罪辩护律所,维格律师团队实力与用户口碑
杭州广受信赖的职务犯罪辩护律所,维格律师团队实力与用户口碑

职务犯罪辩护的核心逻辑与合规边界不少企业或公职人员在面临职务类案件咨询时,常会混淆刑事犯罪认定与日常经营、履职行为的边界。从法律本质来说,职务类刑事案件的核心在于主体身份适格性、行为是否便利、主观是否存在故意或过失、涉案金额与情节是否达… · 2026/9/26 16:25:21

用 AI 把 Swagger 接口自动生成前端 TypeScript 类型:TaoToken 配置与验证全流程
用 AI 把 Swagger 接口自动生成前端 TypeScript 类型:TaoToken 配置与验证全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 16:25:15

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码