Зараз читаютьПрактичні новини про код, AI та технології — без інформаційного шуму

Electron 45 alpha 5 виправляє дозволи на файли, USB і небезпечні збої

Тестова Electron 45 alpha 5 точніше прив’язує дозволи до фреймів, усуває кілька crash-сценаріїв і виправляє DevTools, GPU та Linux sandbox.

Electron 45 alpha 5 виправляє дозволи на файли, USB і небезпечні збої

Команда Electron випустила попередню збірку 45.0.0-alpha.5 з великим набором виправлень для дозволів, ізоляції контекстів і стабільності desktop-застосунків. Зміни стосуються File System Access API, USB/HID, відкриття зовнішніх адрес, захоплення екрана, DevTools, GPU та кількох race condition. Це alpha-версія для тестування, а не сигнал негайно переводити production на гілку 45.

Редакційна AI-ілюстрація лабораторного тестування desktop runtime, дозволів і периферії; не входить до першоджерела.
Редакційна AI-ілюстрація тестування desktop runtime. Вона не відтворює реальний інтерфейс Electron, операційних систем або сторонніх продуктів.

Дозвіл на файл тепер належить документу

Запити File System Access і подія file-system-access-restricted тепер прив’язуються до документа, який їх ініціював. Надані права скидаються, коли закривається остання сторінка відповідного origin, а доступ на запис працює і в in-memory sessions. Це важливо для застосунків із кількома вікнами, embedded-фреймами та тимчасовими профілями.

Принцип тут простий: дозвіл не повинен переживати контекст, у якому його попросили. Якщо сторінка зникла або навігація замінила її іншою, старий grant не має непомітно перейти до нового документа. Розробникам варто перевірити редактори, імпортери, файлові менеджери й програми, що відкривають вікна авторизації.

USB, HID і lock API точніше повідомляють джерело

У session.setPermissionCheckHandler виправлено дані для HID і USB-запитів із subframe: callback отримує реальний requesting frame замість лише top-level origin і порожнього webContents. Аналогічно pointerLock і keyboardLock передають фрейм, який попросив право, а execCommand('paste') потребує user activation саме у фреймі-викликачі.

Такі деталі важливі для застосунків, що показують вебвміст або плагіни в iframe. Політика доступу може дозволяти власній сторінці роботу з пристроєм, але відмовляти вкладеному контенту. Після оновлення обробник має приймати рішення за origin і frame, а не припускати, що будь-який запит походить від головного вікна.

Виправлено кілька аварійних сценаріїв

На Linux усунено crash, коли один потік читав environment, а інший одночасно змінював process.env, а також витік пам’яті під час завершення worker thread. На Windows прибрано можливе падіння, якщо file dialog відкривався одночасно із закриттям вікна.

Окреме виправлення стосується window.open(): renderer міг аварійно завершитися, якщо opener і дочірня сторінка працювали в одному процесі, але мали різні значення contextIsolation. Також захищено setDisplayMediaRequestHandler від знищеного frame або некоректної передачі id іншої вкладки.

DevTools, GPU і Linux-пакети

Збірка повертає працездатність кільком інтеграціям DevTools: перегляду сертифіката в Security panel, масштабуванню через Ctrl+колесо й гарячим клавішам на кшталт F8, коли фокус залишається на inspected page. app.getGPUInfo('complete') більше не має на кілька секунд блокувати GPU process на частині Windows-систем.

Для Linux виправлено відображення Tray icon усередині Flatpak і Snap sandbox. Крім того, застосунок більше не повинен зависати на сторінках із дуже великою кількістю draggable-елементів app-region, а відповіді protocol.handle, які прямо повертають net.fetch, мають вищу пропускну здатність.

Чекліст для команди desktop-застосунку

  • Не ставити alpha-збірку всім користувачам; створити окремий prerelease-канал.
  • Протестувати відкриття, запис і повторний запит файлів після закриття останнього вікна origin.
  • Перевірити дозволи USB/HID у головному документі та iframe з іншим origin.
  • Відтворити screen capture під час закриття вікна й швидкої навігації.
  • Прогнати багатопотокові сценарії з workers, process.env та великою кількістю IPC-повідомлень.
  • На Linux окремо перевірити Flatpak/Snap, tray і portal-діалоги; на Windows — file picker і GPU diagnostics.

Чого реліз не гарантує

Alpha 5 не є стабільною Electron 45 і може містити нові регресії. Частину виправлень команда вже позначила як наявні також у гілках 42–44, тому production-проєкту доцільніше спершу перевірити підтримуваний stable-реліз із backport, а не стрибати на alpha. Зміни дозволів також не замінюють власну allowlist, CSP, context isolation і відмову від непотрібного Node.js integration у renderer.

Практичний висновок: збірка корисна для раннього тестування складних desktop-сценаріїв із файлами, периферією та кількома фреймами. Найцінніше — не кількість пунктів changelog, а точніша прив’язка дозволу до реального документа й усунення race condition навколо життєвого циклу вікон.

Джерело та права

Матеріал є самостійним українським перекладом-переказом офіційних release notes Electron 45.0.0-alpha.5, опублікованих 7 вересня 2026 року. Текст, код і документація репозиторію поширюються за ліцензією MIT. Перекладено й адаптовано редакцією «Бібліотеки програміста». Обкладинка створена редакцією за допомогою AI і не входить до першоджерела.

Першоджерело:Electron releases ↗
Автор:Electron contributors
Ліцензія:MIT ↗

Матеріал перекладено, переказано та доповнено редакцією українською мовою.

</>

Читайте далі — ми вже розбираємо наступну важливу тему.

Далі за темою

Схожі матеріали