为什么Safari浏览器在最新版本中取消了部分旧版扩展的支持?
作者:佚名
时间:2026-06-10 08:32:07
Safari 12起全面弃用旧扩展架构,转向基于Web Extensions的受限新API,并强制最小权限、App Store审核、沙盒隔离与进程隔离,以提升安全、隐私、稳定性和性能。
因为苹果在 Safari 12(2018年随 macOS Mojave 推出)起全面转向新扩展架构,旧版扩展不再兼容。
扩展 API 彻底重构
新版 Safari 使用基于 Web Extensions 标准的全新 API,大幅限制了扩展可访问的网页数据范围。旧扩展依赖的旧接口(如 safari.application、safari.browserWindow 等)已被移除,导致它们无法加载或运行。
安全与隐私策略升级
苹果明确将“最小权限原则”写入扩展审核规范:
- 旧扩展常能读取全部网页内容、监听所有标签页、修改任意 DOM —— 存在严重隐私泄露风险
- 新架构强制声明所需权限(如仅限特定域名、仅读取选择文本),系统级沙盒进一步隔离扩展行为
- 未经 App Store 审核的旧扩展无法通过 Gatekeeper 验证,macOS 默认阻止加载
统一分发与维护控制
苹果将扩展纳入 Mac App Store 生态管理:
- 所有上架扩展必须签名、沙盒化、定期更新,便于漏洞响应和版本回滚
- 旧扩展多为独立 .safariextz 文件,开发者可随意发布,苹果无法监管其后续安全性
- iOS 13 起完全禁用旧扩展,macOS 后续版本也逐步收紧(如 Ventura 开始默认不显示未签名扩展)
性能与稳定性优化
旧扩展常驻内存、无节制注入脚本,是 Safari 闪退和页面卡顿的常见原因:
- Safari 12+ 引入扩展进程隔离机制,单个崩溃不影响主浏览器
- 旧扩展缺乏资源配额限制,易拖慢整个渲染引擎
- 苹果在提示中直接指出:“此扩展可能降低浏览速度”——这是真实技术判断,非营销话术
