这是我对 Chrome、对 cookie 或对相关标准不了解的地方。
我打开一个新的 Chrome(Windows 7 上为 31.0.1650.63 m),没有以前保存的标签(“继续我上次中断的地方”处于关闭状态),没有 cookie。
我打开一个隐身窗口,然后转到一个网站 S,设置 cookie X,如 Chrome 的 DevTools 的“资源”选项卡中所示。
现在我打开一个新的隐身标签页 2,并关闭原来的隐身标签页 1。(换句话说,我确保始终保持至少一个隐身标签页打开。)
然后我用“清除浏览数据”从一开始就清除所有内容,包括 cookie。
在隐身选项卡 2 中,我转到同一个站点 S。DevTools 的“网络”选项卡显示第一个请求发送 cookie X。这对我来说似乎是不正确的,因为当我执行“清除浏览数据”时,cookie X 应该已被删除。
(似乎“清除浏览数据”是在非隐身标签上运行的,因此它无法访问隐身标签的 cookie。或类似的东西。)
这是 Chrome 的错误吗?如果是,是否已在某处报告过?(更新:一个答案指出了我 Chromium 问题55945,然后我还发现136180。最后一个问题是由 Chromium 项目成员报告的,他说:“使用“清除浏览数据”清除普通和隐身配置文件将是一个简单的解决方案。”)如果没有,有人可以指出我相关的文档或标准吗?
答案1
Chrome 的“清除浏览数据”不会清除打开的隐身标签页的 cookie?
不会,当标签/窗口关闭时,隐身数据会被清除。
我打开一个新的 Chrome(Windows 7 上为 31.0.1650.63 m),没有以前保存的标签(“继续我上次中断的地方”处于关闭状态),没有 cookie。
… 在隐身选项卡 2 中,我转到同一个站点 S。DevTools 的“网络”选项卡显示第一个请求发送了 cookie X。这在我看来似乎是不正确的。
我知道你的意思;使用隐身模式允许 cookie 独立,这样你就可以打开同一网站的几个窗口,并使用不同的用户名登录,这似乎是合乎逻辑的。然而,Chrome 的隐身模式实现方式并非如此。
当您打开隐身窗口时,Chrome 会创建一个新的独立实例,其行为方式与常规版本完全一样,只是它不会在磁盘上存储缓存文件或在日志中记录任何内容。由于它的行为方式与常规浏览器类似,因此它会在打开的标签页和窗口之间共享 Cookie 和其他会话信息。这就是为什么所有加载了相同页面的隐身标签页都能够看到相同的 Cookie。
关闭最后一个隐身标签时,Chrome 会清除 Cookie 和其他会话信息。在此之前,这些信息都会保留下来。
(似乎“清除浏览数据”是在非隐身标签上运行的,因此它无法访问隐身标签的 cookie。或类似的东西。)
所有与浏览器相关的选项卡(如设置、扩展、插件、历史记录、下载等)都在常规非隐身窗口中运行,并可以访问整个浏览器,包括隐身窗口。
这是 Chrome 的错误吗?
不,这是有意的行为。
如果是,是否已在某处报告过?如果没有,有人能告诉我相关文档或标准吗?
是的,这是2010 年报告,但已被关闭。此外,有讨论表明这是正常行为,在可预见的未来不会改变。[1][2][3][4]你可以检查变化或者提交新报告(尽管他们很可能只是将其作为前一个的重复而关闭)。