字词数:834   ✧   阅读量:   ✧  

以下按钮可供你方便地引用本文。URL 中即使域名变化,其后的路径也将始终指向原本的内容。
https://css.celestialy.top/p/4b43cc5e4
[Firefox 禁用 DRM 提示 | clsty 的网络空间站](https://css.celestialy.top/p/4b43cc5e4)
[[https://css.celestialy.top/p/4b43cc5e4][Firefox 禁用 DRM 提示 | clsty 的网络空间站]]

你想要 DRM Free 吗?

Firefox 内置了对 DRM 的支持,并且提供了禁用它的选项;但只要你禁用它,Firefox 就会弹出提示来烦你。本文能让你摆脱这一困扰。

背景

DRM(Digital Rights Management)是一种针对多媒体的鉴权加解密系统,主要为了保护版权方的利益,代价却是消费者因此不能真正拥有其所获得的内容,而只能是“租借”。因此,笔者更赞同 DRM Free 的理念。

Firefox 网络浏览器内置了 DRM 支持1,并且提供了禁用它的选项。

但是,如果你真的禁用了它,就会发现在打开一些页面,比如 Bilibili 上的某个电影时(注意同一页面可能只有第一次才会提示),还是可能跳出打开 DRM 的提示。

方法

Firefox 的设置界面没有直接关闭这个提示的方法,但是我们可以通过修改 userChrome.css 来定制 Firefox 的界面,进而达成关闭此提示的目的。

具体步骤如下:

  • 打开 about:config,将 toolkit.legacyUserProfileCustomizations.stylesheets 的值设为 true。
  • 在 Firefox 的 profile 目录下新建 chrome 文件夹。
    • 以防你不知道 profile 目录,你可打开 about:support 查看 profile directory 的值。
  • 在 chrome 文件夹下新建 userChrome.css 文件。编辑内容为:
1notification-message[value="drmContentDisabled"] {
2    display: none !important;
3}

应当注意,开头不要

1@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

这是因为,虽然它仍然挂在 http://kb.mozillazine.org/UserChrome.css 这个页面上,但实测加了它反而会导致上面的那个配置无效。

原因据说是,Firefox 已经从 XUL 更换到更标准的网络技术栈,由于旧的 XUL 命名空间可能不适用于新的 UI 元素,所以这一句可能导致问题。

原理

这个提示,是 Firefox 用户界面的一部分(即,并不是网页的一部分),所以要对 Firefox 用户界面本身进行修改。

这就要用到 userChrome.css 了。当然,得先在 about:config 中启用它。

然后,我们是如何得知具体的 CSS 规则是要针对谁的呢?

  • 即如何获知 notification-message[value="drmContentDisabled"]

方法是:

  • F12 打开开发者面板,面板右上方三点里找设置(齿轮图标)。
  • 再从 Advanced settings 里勾选“Enable browser chrome and add-on debugging toolboxes”和“Enable remote debugging”。
  • 此时再按 Ctrl+Alt+Shift+I 来打开 Browser Toolbox, 同意调试之后,会发现多出来一个窗口, 这个窗口里面就可以找到 Firefox 界面中的元素了(使用方法类似在浏览器用 F12 调出的开发者工具)。

定位到 drm 相关的,可以发现通知所在的代码部分中有一句:

1<notification-message xmlns="http://www.w3.org/1999/xhtml" message-bar-type="infobar" dismissable="" value="drmContentDisabled" type="info" style="" class="animated"><div></div></notification-message>

这就是上面那个配置的依据了。

参考链接