Safari OS X "block-cookies" 内容阻止规则

Safari OS X "block-cookies" content blocking rule

我正在尝试在 OS X 中为 Safari 创建一个简单的扩展程序,将用于设置 cookie 的域列入白名单。 documentation indicates that this is possible with the "block-cookies" action type. When I try to use it, however, it does nothing. I'm testing here,无论我使用何种规则或我的 url 触发器有多广泛或具体,该网站都能够设置 cookie。

扩展程序已加载并正常运行。如果我将操作更改为其他内容,它会起作用。

当我这样做时,"topbar" div 被隐藏:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "css-display-none","selector": "#topbar"}}]

当我这样做时,整个页面加载失败:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "block"}}]

当我这样做时,没有任何阻塞:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "block-cookies"}}]

Safari 必须至少接受我的 block-cookies 规则,因为如果我将其更改为无效的内容,它会给我一个错误,"JSON compilation failed." 像这样:

[{"trigger": {"url-filter": ".*whatarecookies.com.*"},"action": {"type": "blockcookies"}}]

我没有正确使用 "block-cookies" 操作吗?还是它被窃听了?

我重新审视了这个并找出了问题所在:Safari 的 "block-cookies" 操作确实阻止了 cookie,但只有那些通过 HTTP headers 设置的。我正在测试的网站通过 javascript 设置其 cookie,内容阻止对此无能为力。

内容拦截也有一个 "script" 过滤器,但与 "block-cookies" 操作一样,它非常有限。由于测试站点通过内联脚本设置其 cookie,启用 "script" 过滤器仍然不会阻止它。