Safari扩展程序如何知道私有浏览模式是否已启用?

时间:2010-10-18 16:58:26

标签: security safari privacy safari-extension

我正在编写一个Safari扩展程序,并希望当用户打开“私密浏览”模式时,它的行为会有所不同(我想尊重这种私有模式)。

我在Apple的文档中没有提到这一点。

我知道这个帖子中的讨论:

Detecting if a browser is using Private Browsing mode

建议使用(浏览器不可知的)js-CSS技巧来检测私人浏览模式,但希望Safari内置一些钩子,我可以用它来扩展。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以查询布尔值safari.application.privateBrowsing.enabled以检查是否启用了隐私浏览。

当激活或停用隐私浏览时,您还可以附加事件侦听器以触发自定义代码。

safari.application.privateBrowsing.addEventListener('activate', function(e) {
  console.log("Private browsing activated");
});

safari.application.privateBrowsing.addEventListener('deactivate', function(e) {
  console.log("Private browsing deactivated");
});

来源:Apple Docs

答案 1 :(得分:0)

所有私有模式都将忽略浏览器使用的cookiejar的当前状态。使用类似evercookie的内容来跟踪特定浏览器以及它如何管理其各种会话ID。例如,如果您的http cookie在60年后到期,并且在您的服务器的请求中不存在此cookie值,那么您知道cookie值已被刷新或者它们处于私有模式。这将需要您进行更多的实验,但这个方向将是检测浏览器中私有模式使用的一般方法。