доступ к localmedia ограничен, пока пользователь не взаимодействует со страницей в Firefox - PullRequest
3 голосов
/ 11 апреля 2019

Я дал разрешение на использование микрофона в моем домене. Мы используем наш домен в нескольких вкладках. Я могу получить локальное мультимедиа (микрофон) при доступе на той же вкладке. Но я не могу получить локальное мультимедиа для WebRTC в другой вкладке (в том же домене), не посещая вкладку. Только после посещения вкладки локальный доступ к данным получен.

Это сделано специально для безопасности и конфиденциальности? , Есть ли способ решить мою проблему?

Причина: ограничить использование ресурсов для сеанса WebRTC. Мы держим сеанс WebRTC в одной вкладке для нашего домена и используем только этот ресурс для всех вкладок для совершения звонков.

Попробовал настройку микрофона-разрешения как атрибута iframe. Но это не решило проблему. Это работает нормально в браузере GoogleChrome, хотя. Если я открываю новую вкладку (T1) и запускаю в ней webrtc и выполняю вызов webrtc из другой вкладки (T2), даже не посещая вкладку T1, вызов подключается в chrome, но не в Firefox, если я не посещаю T1.

Примечание. Он не запрашивает разрешение на использование микрофона в домене, он получает его автоматически. Просто он получает только после того, как я захожу на вкладку. Я уже дал разрешение на доступ к микрофону своему домену.

1 Ответ

2 голосов
/ 11 апреля 2019

Это сделано специально для безопасности и конфиденциальности?

Да, это сделано для того, чтобы фоновые вкладки не включали камеру или микрофон, чтобы шпионить за пользователями. Потому что это жутко. Я считаю, что Safari работает так же.

Спецификация getUsermedia недавно сделала это требованием :

  • Шаг 6.1. «Пользовательский агент ДОЛЖЕН подождать, чтобы перейти к следующему шагу, пока ответственный документ объекта текущих настроек не станет полностью активным и сфокусированным». *

Так что я ожидаю, что Chrome скоро последует этому примеру.

Есть ли способ решить мою проблему?

Это очень сильно подорвало бы уверенность.

Пользователи могут быть уверены, что только текущая вкладка может включить камеру или микрофон.

Если я открою новую вкладку (T1) и инициирую в ней webrtc и сделаю вызов webrtc из другой вкладки (T2), не посещая вкладку T1, вызов подключается в chrome, но не в Firefox, если я не посещаю T1.

Это проблема RTCPeerConnection , которая отличается от getUserMedia .

Обходной путь - не блокировать установление соединения на микрофонном доступе.

Нет причины, по которой вы не можете сначала подключиться, а потом добавить микрофон.

Или получите микрофон заранее и подключитесь позже. По сути, эти два действия не должны совпадать или блокировать друг друга.

...