Notification.requestPermissions - 未显示对话框,"automatically blocked" 消息在 Chrome 中

Notification.requestPermissions - no dialog shown, "automatically blocked" message in Chrome

我正在使用 SSL 在 localhost 上测试 HTML5 通知。我已经重置了站点的 Chrome 设置(通过单击 URL 框中的锁定图标 - “站点设置”),并且仔细检查通知设置设置为“询问(默认)”。

现在这是我的代码:

if (Notification.permission !== "granted") {
    Notification.requestPermission();
}

但是一旦代码为 运行, 不会显示任何权限弹出窗口,而是我在地址栏中看到这个锁图标​​,上面写着“通知被阻止”:

尝试向代码添加 .then() 承诺 - 结果相同。使用 Chrome 版本 85.0.4183.102。他们改变了什么吗?

我确实看到博客文章提到 Chrome 会在用户关闭弹出窗口三次时自动禁用通知,但我确实重置了设置,对吗?

P.S。如果我刷新页面并再次请求权限 - 我在控制台中看到了这个 "Notifications permission has been blocked as the user has ignored the permission prompt several times." 等等,如果我没有看到提示,我怎么能忽略它?

好的,所以在用头撞墙一个小时后,我找到了原因。

地址栏中的那个小锁图标 - 是新的“通知提示”女士们先生们。

我想在这里保持冷静,但是... FFS Google你是认真的吗?

P.S。我们都明白这背后的意图是防止人们滥用这些弹出窗口。但更好的方法是检查代码是否在 user-triggered 上下文中运行(例如响应点击),如果是这样 - 像以前一样保留它。