Да, это возможно. Для потоковой передачи рабочего стола пользователя вместо его камеры замените
const stream = await navigator.mediaDevices.getUserMedia({video: true});
с
const stream = await navigator.mediaDevices.getDisplayMedia({video: true});
Это побудит пользователя поделиться окном приложения или поверхностью рабочего стола по своему выбору.
Обратите внимание, что в настоящее время поддержка браузера ограничена. getDisplayMedia реализовано в Chrome 72, Firefox 66, Edge 17 и за флагом в Safari 11.
Он также доступен с использованием polyfill adapter.js в старых версиях Firefox и Chrome, хотя для этого требуется установить веб-расширение в Chrome.
Будет ли подобное приложение проблемой безопасности
Да, существуют существенные проблемы безопасности , связанные с совместным использованием экрана.
Очевидный риск позволить веб-сайту записать ваш рабочий стол, если он может раскрыть личную информацию.
Неочевидный риск заключается в том, что совместное использование вашего браузера или всего рабочего стола, когда ваш браузер виден на нем, опасно и должно выполняться только с сайтов, которым вы доверяете.
Это связано с тем, что вредоносный веб-сайт, присутствующий на таких веб-поверхностях, может эффективно просматривать от вашего имени и записывать результаты, обходя важные перекрестные защиты в браузере.