доступ к localmedia ограничен до тех пор, пока пользователь не начнет взаимодействовать со страницей в firefox

#javascript #firefox #webrtc #media

#javascript #firefox #webrtc #Медиафайлы

Вопрос:

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

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

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

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

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

Комментарии:

1. Вот почему и намеренно. Каков ваш вариант использования? За кем вы хотите шпионить? 😉

2. В нашем приложении вызывается WebRTC, и из-за некоторых ограничений у нас не может быть более 5 подключений. Следовательно, у нас есть одно соединение, и мы разделяем его между вкладками. Предположим, что пользователь открыл несколько вкладок и инициировал вызов с одной вкладки, на которой нет соединения, тогда вызов не будет подключен, пока пользователь не посетит вкладку, на которой есть соединение. Проблема в том, что пользователь не знает о вкладке с подключением и, следовательно, может вообще не знать об этом.

Ответ №1:

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

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

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

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

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

Есть ли какой-нибудь способ решить мою проблему?

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

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

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

Это проблема с подключением RTCPeerConnection, которая не связана с getUserMedia.

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

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

Или получите mic заранее и подключитесь позже. В принципе, два действия не должны совпадать или блокировать друг друга.

Комментарии:

1. Соединение WebRTC уже будет присутствовать . Разрешение на микрофон уже получено и для домена. Проблема в том, что доступ к мультимедиа предоставляется автоматически только после того, как пользователь сфокусирует вкладку.

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