问题:
我正在开发一个使用麦克风生成动画的网页。我知道 FireFox 出于隐私考虑需要向用户请求麦克风访问权限。但是,作为一名开发人员,每次刷新页面时都要点击“允许”真的很麻烦。
第一次尝试:
我看到有一个“记住这个决定”的选项,但它不允许我使用这个选项,因为我的内容是通过提供的localhost
,而不是通过安全(https)连接提供的:
Your connection to this site is not secure. To protect you, Firefox will only allow access for this session.
第二次尝试:
我尝试localhost
在“设置”下将其添加到允许的网站列表,但问题仍然存在:
问题:
有什么方法可以覆盖此安全功能?我知道这是保护用户免受恶意网站侵害的一项重要功能,但这是localhost
,而且只有我才能查看。
答案1
据我所知,您不能。阻止的确切原因称为getUserMedia.reasonForNoPermanentAllow.insecure
。因此,除非您能以某种方式调整/欺骗它,否则唯一的选择就是从源代码重新编译 Firefox。
您需要更改的代码位于这里。
// Don't offer "always remember" action in PB mode.
if (!PrivateBrowsingUtils.isBrowserPrivate(aBrowser)) {
// Disable the permanent 'Allow' action if the connection isn't secure, or for
// screen/audio sharing (because we can't guess which window the user wants to
// share without prompting).
let reasonForNoPermanentAllow = "";
if (sharingScreen) {
reasonForNoPermanentAllow = "getUserMedia.reasonForNoPermanentAllow.screen3";
} else if (sharingAudio) {
reasonForNoPermanentAllow = "getUserMedia.reasonForNoPermanentAllow.audio";
} else if (!aRequest.secure) {
reasonForNoPermanentAllow = "getUserMedia.reasonForNoPermanentAllow.insecure";
}
options.checkbox = {
label: stringBundle.getString("getUserMedia.remember"),
checkedState: reasonForNoPermanentAllow ? {
disableMainAction: true,
warningLabel: stringBundle.getFormattedString(reasonForNoPermanentAllow,
[productName])
} : undefined,
};
}
答案2
是的,这是有可能的正如另一个相关问题的答案中所解释的那样。
脚步
- 去
about:config
- 设置
media.navigator.permission.disabled
为 true
然而,这允许任何网站访问摄像头和麦克风无需提示