如何完全禁用Firefox中的推送通知?


16

我正在使用Firefox(版本58.0.1),并且有一段时间了,Firefox和其他浏览器已经实现了称为“推送通知”的功能。

现在看来,每个网站都希望向您“推送”通知。这已成为一种新的弹出形式,并且是一种侵入式技术。由于对推送通知请求的不断轰炸,我希望完全禁用推送通知。

我不想逐个站点禁用。我想永久禁用每个站点的“功能”。

样本推送通知请求

我已经浏览了Firefox设置和Mozilla网站上的文档,但是有关如何禁用“推送通知”的信息并没有任何正式说明。2


2
此API的最佳做法是,网站应首先告诉您为什么需要通知,然后才请求权限。但是,有很多网站在没有任何上下文的情况下要求获得此许可。我担心有用的功能会以这种方式降级
Kos

2
可笑的是,我真的希望有一个质量保证网站的领先网络来支持这一点……
Journeyman Geek

@Kos虽然我原则上同意,但不幸的是,此功能在反模式中的滥用已经很明显了。我实际上想知道W3如何认为这将不会被滥用。我认为这项工作的唯一方法是让网站在不使用弹出窗口的情况下在选择加入请求模型中工作,因为这就是弹出窗口Windows的新版本。
大卫

Answers:


9

通过进一步的研究,我发现您必须进入该about:config界面。 这里是龙!(1)或者,如果您使用美国语言环境,则您的保修可能无效(2)

我将四个设置更改为FALSE

  • dom.webnotifications.enabled
  • dom.webnotifications.serviceworker.enabled
  • dom.pushconnection.enabled
  • 启用dom.push

(1)这是龙:

这是龙

(2)这可能会使您的保修失效: 这可能会使您的保修无效!


3
绝对是一个不错的问答!话虽这么说,虽然《这里龙》的整体内容相当有趣,但它可能取决于版本和/或您所在的地区。我使用的是En-US 64位版本的Firefox 58.0.2,我的about:config页面从未这样说
Run5k

1
@ Run5k-我为您添加了一个屏幕截图。我一直都看到这一点。
David

大卫,我知道您的意图是最好的,但是请记住,这个答案并不是专门为谋取利益的。它旨在帮助整个社区,并且我们已经确定幽默Here be dragons!屏幕严格是区域性的。结果,它有可能使大部分查看此答案的人感到困惑。完全不需要它,实际上有点适得其反。
Run5k

1
这是正确的答案。Firefox的“首选项”对话框已成为垃圾箱之火,关于:config通过比较易于使用。从长远来看,@ Run5k的答案将无济于事,因为它需要详细的屏幕截图,随着每个软件版本的发布,这些截图都会过时。
塞林

1
@ Run5k,请不要告诉我我可以赞成或反对。由于我写的原因,您的答案没有这个答案有用。这就是投票的重点。不要亲自去做。是的,about:config是微妙的,但是正如大量Google结果“说明”如何使用“首选项”对话框所示,大多数用户都不知道该名称是否存在,或者不了解如何在其中找到任何内容。about:config接口的好处是,它不会在每个发行版中都完全改变,因此,一旦您知道如何使用它,就可以完成工作。
塞林

8

随着Firefox 59的发布,我们现在可以使用默认的“ 选项”页面禁用推送通知。

Firefox 59 的正式发行说明描述了此修改:

在about:preferences中添加了设置,以阻止网站要求发送通知

您可以通过以下方式配置此选项:

  1. 导航到about:preferences页面
  2. 单击左上角的“ 隐私和安全性
  3. 向下滚动到右侧的“ 权限”部分
  4. 单击Settings...通知关联的按钮

    隐私和安全

  5. 在随后的窗口中,选中阻止新请求以允许通知的框
  6. 点击保存更改按钮

    设置-通知权限


1

禁用推送通知和同步配置

将此行粘贴到config prefs.js文件中,您可以在以下位置找到配置文件:

%APPDATA%\ Mozilla \ Firefox \ Profiles \ XXXXXX.default \ prefs.js

user_pref("dom.webnotifications.enabled", false);
user_pref("dom.webnotifications.enabled", false);
user_pref("dom.webnotifications.serviceworker.enabled", false);
user_pref("dom.pushconnection.enabled", false);
user_pref("dom.push.enabled", false);
user_pref("services.sync.prefs.sync.dom.webnotifications.enabled", true);
user_pref("services.sync.prefs.sync.dom.webnotifications.serviceworker.enabled", true);
user_pref("services.sync.prefs.sync.dom.pushconnection.enabled", true);
user_pref("services.sync.prefs.sync.dom.push.enabled", true);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.