隐身模式下的 Chrome 扩展程序

Vit*_*aly 3 session-cookies google-chrome-extension incognito-mode

我有一个 Chrome 扩展程序,可以向我的网站发出 ajax 请求。该站点使用会话。因此,作为对站点的 ajax 请求的响应,Set-Cookie 标头与一些会话标识符一起返回,并且此条目出现在扩展 DevPanel(背景页面的)的 cookie 部分中。但是,站点的 DevPanel 浏览器中的会话 ID 是完全不同的。隐身模式允许扩展。

在正常模式下,扩展程序和浏览器的 DevPanels 中的 cookie 是相同的。我知道普通模式和隐身模式的 cookie 应该不同,但是为什么这些值对于隐身模式允许的扩展名不同?

我是对的并且允许在隐身模式下使用扩展,在正常模式下工作吗?

Vit*_*aly 6

在 chrome 讨论组中向我建议了解决方案。

扩展清单中有一个“隐身”键,具有三个值:“spanning”(默认)、“split”和“not_allowed”。

您可以在此处阅读有关此密钥的更多信息:https : //developer.chrome.com/extensions/manifest/incognito。

为了解决我的问题,为这个键设置值“split”就足够了。在这种情况下,为扩展打开了两个单独的进程 - 对于正常模式和隐身模式。如果浏览器以隐身模式打开,则将使用“隐身”扩展程序。

现在,隐身模式下的 ajax 请求获得正确的会话 cookie。

PS 如果您正在开发跨浏览器扩展,请注意,Firefox 仍然(今天:2017-12-11)仅支持“incognito”键的“spanning”值。


abi*_*ita 2

你可以参考这个帖子。请注意,如果它们是浏览器和网络浏览相关的项目,例如 cookie 和会话数据,则不可能在隐身模式下允许 cookie。

当启动第一个隐身窗口时,它使用一个全新的空白内部配置文件,没有 cookie 也没有会话数据。任何 cookie 或会话信息都会在该会话期间立即设置。更多打开的隐身窗口都共享同一会话,因此它们共享 cookie/会话数据。但是,当最后一个隐身窗口关闭时,所有这些 cookie/会话数据都将被清除。没有任何信息会被永久保存。

它们都不能改变普通窗口中的会话信息,因为隐身窗口在完全独立的会话中运行。

这是根据隐身模式的设计和功能。