1

Проблема:

Я разрабатываю веб-страницу, которая использует микрофон для создания анимации. Я понимаю, что 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 ответ1

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,
  };
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .