Я сталкиваюсь с каким-то непоследовательным поведением с Chrome без головы.Я пытаюсь использовать флаг unsafely-treat-insecure-origin-as-secure
для тестирования мультимедийных устройств в домене, отличном от localhost
, с Chrome без головы.
Проблема заключается в том, что при нормальной работе Chrome мультимедийные устройства работают должным образом,но при работе без него они не загружаются.
HTML, с которым я тестирую (media.html
):
<html>
<head>
</head>
<body>
<video id="video"></video>
<script>
navigator.mediaDevices.getUserMedia({audio: true, video: {width: 1280, height: 720}})
.then(function(stream) {
var video = document.querySelector('#video');
video.srcObject = stream;
video.onloadedmetadata = function() {
video.play();
};
}).catch(function() {
console.log("Failed to get media devices");
});
</script>
</body>
</html>
Запуск Chrome приводит к следующим результатам, которые работают должным образом:
chromium --unsafely-treat-insecure-origin-as-secure=http://lvh.me:8000 --use-fake-device-for-media-stream --use-fake-ui-for-media-stream --remote-debugging-port=9222 "http://lvh.me:8000/media.html"
Использование python2 -m SimpleHTTPServer 8000
в качестве веб-сервера.
Однако запуск Chrome в автономном режиме:
chromium --headless --unsafely-treat-insecure-origin-as-secure=http://lvh.me:8000 --use-fake-device-for-media-stream --use-fake-ui-for-media-stream --remote-debugging-port=9222 "http://lvh.me:8000/media.html"
А затем переход на http://localhost:9222/
приводит кследующее:
Uncaught TypeError: Cannot read property 'getUserMedia' of undefined
at media.html:9
Кто-нибудь знает, откуда исходит это несоответствие?Почему безголовый Chrome, по-видимому, не уважает флаг unsafely-treat-insecure-origin-as-secure
?