Предоставьте Firefox постоянный доступ к микрофону на локальном хосте

373
Marquizzo

Проблема:

Я разрабатываю веб-страницу, которая использует микрофон для создания анимации. Я понимаю, что FireFox должен запросить у пользователя разрешение на доступ к микрофону из-за проблем с конфиденциальностью. Однако, нажимая «Разрешить» каждый раз, когда я обновляю страницу, как разработчик, становится очень утомительно.

Первая попытка:

Я вижу, что есть опция «Запомнить это решение», но она не позволяет мне использовать это, потому что мой контент обслуживается через localhost, а не через безопасное (https) соединение:

enter image description here

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

Вторая попытка:

Я попытался добавить localhostв список разрешенных веб-сайтов в разделе «Настройки», но проблема все еще сохраняется:

enter image description here

Вопрос:

Есть ли способ переопределить эту функцию безопасности? Я понимаю, что это отличная функция для защиты пользователей от вредоносных веб-сайтов, но это localhostтолько для меня.

1

1 ответ на вопрос

1
confetti

Насколько я знаю, ты не можешь. Точная причина для блока называется 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, }; } 
Оу, чувак Я надеялся, что может быть легкое переопределение в `about: config`. Marquizzo 6 лет назад 0
Я думаю, что нашел способ. Это работает на моем FF с небезопасным сайтом в локальной сети. Откройте свой веб-сайт, затем нажмите кнопку информации о странице (слева от строки URL), нажмите стрелку рядом с надписью «Соединение небезопасно» и перейдите к «Дополнительная информация». В верхней части этого всплывающего окна перейдите в «разрешения», прокрутите вниз и снимите флажок «Использовать по умолчанию» для микрофона, затем выберите «Разрешить» справа. Это работает для вас? Если это произойдет, я обновлю свой ответ. confetti 6 лет назад 0
К сожалению, это также не работает. Вот как я добавил `localhost` в список разрешенных сайтов в Предпочтениях, которые можно увидеть здесь: https://i.stack.imgur.com/MEb1i.jpg, но он по-прежнему запрашивает разрешение при каждой перезагрузке. Marquizzo 6 лет назад 0

Похожие вопросы