Chrome 又一次绕过了你的站点数据清理设置
Chrome 152 被曝再次豁免 Google 站点数据自动清理,关闭窗口后仍残留约 1.2 MB。访谈拆解技术成因、隐私代价与 HN 上的垄断之争。

六年前,独立开发者 Jeff Johnson 发现 Chrome 会豁免 Google 自己的站点数据清理设置,报告后 Google 修复了。六年后,他在 Chrome 152 上再次复现了同样的问题,文章重新登上 HN 首页。有意思的是,这次评论区几乎没聊技术,而是在吵垄断和监管。我请来老朋友陈嘉澍——在一家头部浏览器团队做了十年存储与隐私工程——一起拆解这 1.2 MB 的残留,到底伤在哪里。
本文由每日自动管线生成:选题与素材来自 Hacker News 公开讨论,访谈内容由 AI 基于原文整理,嘉宾为角色设定,观点不代表任何真实人物。
小听: 嘉澍,今天这件事单看标题不新鲜:Chrome 的某个隐私设置好像又没生效。但它的特殊在于,同样的 bug 六年前就被独立开发者 Jeff Johnson 报告过、Google 也修过,现在又复发了。先帮大家还原一下现场,这次到底发生了什么?
陈嘉澍: 他在两台 Mac 上复现,Chrome 版本是 152.0.7977.83。设置里的默认行为是「关闭所有窗口时删除站点保存的数据」,清理之前存储占用显示 0 B。然后用 Google 做一次搜索、关掉唯一的窗口,www.google.com 的站点数据就出现了,大约 1,216 KB,退出并重启 Chrome 也不消失。删掉数据再走一遍流程,问题照样复现。
小听: 听起来他做了不少排除工作。我猜很多人的第一反应是:他是不是没改默认搜索引擎,所以 Google 有正当理由存数据?

逐个后端打补丁,总有一个被忘掉
陈嘉澍: 这正是他排除的第一个变量:他把默认搜索引擎从 Google 换成了 DuckDuckGo,确认设置本身不是原因。另外他全程没有登录 Chrome,甚至直接禁止了 Chrome 的登录功能。也就是说,这不是账号同步带回来的数据,而是纯粹的本地残留。他查看本地目录,发现留下来的具体是 Cookies、Local Storage 和 Session Storage 三类。
小听: 从工程角度讲,这种「漏删」在浏览器里通常是怎么发生的?站点数据不是一个统一的存储吗?
陈嘉澍: 恰恰不是,这也是这类 bug 复杂的根源。Cookies、Local Storage、Session Storage 各自有独立的存储实现和生命周期,清理动作要把每个后端都遍历到。哪个后端没接上删除逻辑,或者某个内部组件在清理之后又把数据写回去,就会出现残留。六年前那次修复大概率是逐个后端打的补丁,后来某条新代码路径没有继承同样的约束,问题就悄悄回来了。

反垄断有任期,产品每天上线
小听: 说实话,1.2 MB 听起来无伤大雅,普通用户可能根本感知不到。这个问题的严重性到底在哪?
陈嘉澍: 问题从来不是体积,而是用户设下的契约被破坏了。「关闭窗口即删除」是对隐私敏感用户的明确承诺,留下的 Cookies 和 Local Storage 足以做身份识别和跨会话追踪。对随手用浏览器的用户无感,但对刻意选择「不留痕」的人,这是信任模型的直接违约。而且承诺每被违背一次,用户对整个隐私设置面板的信任都会打折——这条会失效,其他设置呢?
小听: 还有一个细节被很多人忽略了:作者观察到,被豁免的好像只有 www.google.com 这一个站点,其他网站的数据都正常清除了。
陈嘉澍: 这是整件事最扎心的地方。如果删除逻辑是随机失效,漏掉的应该是任意站点;偏偏只有自家域名幸存,哪怕真是巧合,公众也难免往别的方向联想。作者本人引用了 Hanlon's razor,倾向用无能而非阴谋来解释。但他的态度也很明确:以 Google 的营收和工程师规模,无能不是借口,QA 该补就得补。
小听: 有意思的是,HN 评论区几乎没人讨论实现细节,前排高赞全在聊政治和垄断。有人说「这届政府根本不认为 Google 是垄断」,你怎么看这种讨论方向?
陈嘉澍: 评论区确实跑题跑得很远,但吵的内容本身有信息量。有人拿 Lina Khan 当例子,马上被其他人纠正了时间线:她是 2021 年 3 月由拜登提名执掌 FTC,2025 年特朗普上任约两周后离任,说她「在特朗普一任期内办成了拆分 Google」是对事实的误读。这场争吵恰恰暴露了一个结构性问题:反垄断的执行节奏跟着政治周期走,而企业的产品行为每天都在发生。指望监管替每个用户守住设置开关,是不现实的。
小听: 作者在文末还顺带吐槽了一件事:未登录状态下,Google 搜索结果的链接都变成了 goto?url= 这样的不透明跳转。这和数据残留是一回事吗?
陈嘉澍: 表面上是两件事,内核是同一个:产品把自己的便利置于用户的知情和控制之上。跳转链接是为了点击追踪,牺牲了 URL 的透明度;数据残留这次更像工程质量问题,但它发生在 Google 自己身上,就很难不让人串联起来看。信任是单调递减的资产,只会被这些细节持续消耗,修复一次只能止损,很难增值。
小听: 最后给做基础软件的工程团队留一句可执行的建议吧。
陈嘉澍: 隐私相关的用户设置必须当成不变量来守护,配上自动化测试,而不是当成一个普通功能。每新增一个存储后端、每改一次会话恢复逻辑,都应该跑一遍「设置删除、执行操作、验证为空」的断言。作者那句改编很精辟:Move slower and don't break things。对浏览器这种基础设施,迭代慢一点的代价,远小于信任崩塌的代价。
这期聊下来,比 bug 本身更值得带走的判断是:隐私设置是用户签下的契约,必须由工程团队用测试守住,而不是寄希望于监管的节奏。信任是单调递减的资产,别让它败给一个本可以写进单测的不变量。本文观点仅代表访谈角色设定,原始讨论见参考链接。