Electron 44.2.0 виправив падіння застосунків під навантаженням та оновив Chromium і Node.js
Стабільний Electron 44.2.0 усуває аварії після великої кількості IPC-повідомлень, проблеми native addons і зависання потокового завантаження.

Electron 44.2.0 усуває кілька причин аварійного завершення desktop-застосунків і оновлює вбудовані Chromium та Node.js. Стабільний реліз від 4 вересня орієнтований на надійність мережевих потоків, IPC, native addons та захист ASAR.

Великий потік IPC більше не повинен валити застосунок
Одне з виправлень стосується падіння після великої кількості IPC-повідомлень від renderer-процесів. Electron-застосунки часто розділяють інтерфейс і привілейований main-процес, а IPC є каналом між ними. Коли повідомлень багато, помилка керування ресурсами може проявитися лише під тривалим навантаженням.
Виправлення перенесено також до гілок 42, 43 і 45. Це показує, що проблема не була унікальною для однієї версії. Однак release notes не дають порога повідомлень або гарантії продуктивності, тому командам варто зберегти власні stress-тести.
Native addons і Node.js 24
Оновлення усуває аварію native addons, що наслідують node::ObjectWrap, під час збирання сміття на Node.js 24.19.0 і новіших. Такі компоненти поєднують JavaScript із нативним кодом, тому помилки життєвого циклу можуть завершувати весь процес, а не лише кинути звичайний виняток.
Одночасно Electron оновив вбудований Node.js до 24.20.0. Це потрібно врахувати авторам модулів із нативними бінарниками: після переходу слід перевірити їх збирання, завантаження та поведінку під час завершення роботи.
Мережеві потоки й protocol.handle
Виправлено pending read під час chunked upload через net.request усередині protocol handler. Раніше очікування могло ніколи не завершитися, якщо запит падав або його скасовували. Тепер невдалий сценарій повинен коректно дійти до завершення замість завислого Promise.
Також покращено пропускну здатність відповідей, які обробники protocol.handle повертають безпосередньо з net.fetch. Конкретних цифр у релізі немає, отже ефект треба вимірювати на власному навантаженні.
Ще два виправлення аварій
menu.popup більше не повинен спричиняти потенційне падіння, коли йому передають frame із вікна, що рендериться offscreen. На Windows виправлено періодичний access violation під час виявлення порушення цілісності ASAR: процес тепер завершується з кодом 1, як було задумано, замість неконтрольованої аварії.
Останнє не послаблює перевірку цілісності. Зміна стосується передбачуваного завершення після виявленої проблеми. Застосунок усе одно має трактувати такий результат як помилку і не продовжувати роботу з пошкодженим пакетом.
Оновлення платформи
Chromium піднято до 152.0.7977.76. До випуску також перенесено виправлення з ANGLE, Chromium, Skia та V8. Це корисний пакет стабільності, але для застосунку з критичним рендерингом необхідна регресійна перевірка графіки, web API та native integrations.
Практичний висновок: 44.2.0 варто пріоритезувати командам, які бачать IPC-навантаження, використовують native addons, власні protocol handlers або offscreen rendering. Оновлення слід перевірити на тих самих платформах, що використовують клієнти.
Версія позначена як стабільний реліз, не beta чи nightly. Матеріал не переносить логотипи, screenshots або сторонні медіа й базується на офіційному переліку змін.
Першоджерело та ліцензія
Першоджерело: Electron releases. Автори: Electron contributors. Текст перекладено й адаптовано редакцією; пояснення та практичні висновки додано. Ліцензія першоджерела: MIT.
Copyright (c) Electron contributors; Copyright (c) 2013-2020 GitHub Inc..
MIT permission notice: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Матеріал перекладено, переказано та доповнено редакцією українською мовою.
Читайте далі — ми вже розбираємо наступну важливу тему.


