web-dev-qa-db-ja.com

Firefoxにローカルホスト上のマイクへの永続的なアクセスを許可する

問題:

マイクを使用してアニメーションを生成するWebページを開発しています。プライバシー上の懸念から、FireFoxはユーザーにマイクアクセス許可を求める必要があることを理解しています。ただし、開発者として、ページを更新するたびに「許可」を押すのは非常に面倒です。

最初の試み:

「この決定を記憶する」オプションがあるようですが、コンテンツが安全な(https)接続ではなくlocalhost経由で提供されているため、これを使用できません。

enter image description here

Your connection to this site is not secure. To protect you, Firefox will only allow access for this session.

2回目の試行:

[設定]で許可されているWebサイトのリストにlocalhostを追加しようとしましたが、それでも問題は解決しません。

enter image description here

質問:

このセキュリティ機能を上書きする方法はありますか?これは悪意のあるWebサイトからユーザーを保護するための優れた機能であることを理解していますが、これはlocalhostであり、私だけが見ることができます。

2
Marquizzo

はい、これは一種の可能性があります 関連する質問への別の回答で説明されています。

ステップ

  • about:configに移動します
  • media.navigator.permission.disabledをtrueに設定します

ただし、これにより、任意のWebサイトがプロンプトなしでカメラとマイクにアクセスできるようになります

1
Stefnotch

私の知る限り、あなたはできません。ブロックの正確な理由は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,
  };
}
1
confetti