问题:

问题:

问题:

我正在开发一个使用麦克风生成动画的网页。我知道 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

然而,这允许任何网站访问摄像头和麦克风无需提示

相关内容