Відбувся реліз web-браузера Firefox 88. Крім того, сформовано оновлення гілки із тривалим терміном підтримки 78.10.0. На стадію бета-тестування найближчим часом буде переведено гілку Firefox 89, реліз якої заплановано на 1 червня.
Основні нововведення:
- У браузері PDF додана підтримка інтегрованих у PDF-файли форм введення, в яких для забезпечення інтерактивної взаємодії з користувачем використовується JavaScript.
- Введено обмеження на інтенсивність показу запиту повноважень для доступу до мікрофона та камери. Подібні запити не будуть відображатися, якщо протягом останніх 50 секунд користувач вже надавав доступ до того ж пристрою, для того ж сайту та тієї ж вкладки.
- Виклик інструмента для створення скріншотів видалено з меню «Page Actions», що відображається при натисканні на крапку в адресному рядку. Для створення скріншотів рекомендується викликати відповідний інструмент для контекстного меню, що показується при натисканні правою кнопкою миші або розмістити ярлик на панелі через інтерфейс налаштування зовнішнього вигляду.
- Додана підтримка масштабування щипком на тачпадах у Linux із графічними оточеннями на базі протоколу Wayland.
- У системі виведення на друк виконано локалізація одиниць вимірювання, що використовуються для завдання полів.
- При запуску Firefox в оточеннях Xfce та KDE активовано використання движка композитингу WebRender. У Firеfox 89 очікується включення WebRender для решти користувачів Linux, включаючи всі версії Mesa і системи з драйверами NVIDIA (раніше webRender був включений тільки для GNOME за наявності драйверів Intel і AMD). WebRender написаний мовою Rust і дозволяє домогтися істотного збільшення швидкості малювання та зниження навантаження на CPU за рахунок винесення на бік GPU операцій відображення вмісту сторінки, які реалізовані через шейдери, що виконуються в GPU. Для примусового включення до about:config слід активувати налаштування «gfx.webrender.enabled» або запустити Firefox з виставленої змінної оточення MOZ_WEBRENDER=1.
- Почалося поетапне включення протоколів HTTP/3 та QUIC. Спочатку підтримка HTTP/3 буде активована лише для невеликого відсотка користувачів і, якщо не виникне непередбачених проблем, буде доведена до кінця травня. Для використання HTTP/3 потрібна підтримка на стороні клієнта та сервера однієї версії чорнового стандарту QUIC і HTTP/3, яка вказується в заголовку Alt-Svc (Firefox підтримує чернетки специфікації з 27 по 32).
- За промовчанням вимкнено підтримку протоколу FTP. Налаштування network.ftp.enabled за замовчуванням встановлено на false, а параметр для розширень browserSettings.ftpProtocolEnabled переведений у режим тільки для читання. У наступному випуску буде видалено весь код, пов'язаний із FTP. Як причина називається зниження ризиків атак на старий, що має історію виявлення вразливостей і має проблеми із супроводом код з реалізацією підтримки FTP. Також згадується звільнення від протоколів, що не підтримують шифрування, які незахищені від модифікації та перехоплення транзитного трафіку під час здійснення MITM-атак.
- Для блокування можливих міжсайтових витоків забезпечено ізоляцію значення властивості «window.name» первинним сайтом, з якого відкрито сторінку.
- JavaScript для результату виконання регулярних виразів додано властивість «indices», яка містить масив з початковими і кінцевими позиціями груп збігів. Властивість заповнюється лише під час регулярного виразу з прапором «/d». let re = / quick \ s (brown). +? (Jumps) / igd; let result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog'); // result.indices[0] === Array [ 4, 25 ] // result.indices[1] === Array [ 10, 15 ] // result.indices[2] === Array [ 20, 25 ]
- В Intl.DisplayNames() і Intl.ListFormat() посилено перевірка того, що опції, що передаються в конструктор, є об'єктами. При спробі передачі рядків або інших примітивів генеруватиметься виняток.
- Для DOM надано новий статичний метод AbortSignal.abort(), що повертає AbortSignal, для якого вже виставлено параметр aborted.
- У CSS реалізовані нові псевдо-класи «user-valid» і «:user-invalid», що визначають стан перевірки елемента форми, для якого після взаємодії користувача з формою була виконана перевірка коректності зазначених значень. Ключовою відмінністю ":user-valid" і ":user-invalid" від псевдо-класів ":valid" і ":invalid" є те, що перевірка починається тільки після того, як користувач перейшов на інший елемент (наприклад, переключився на табуляцію на інше поле).
- CSS-функція image-set(), що дозволяє вибрати зображення з набору варіантів з різною роздільною здатністю, що найбільше підходить для поточних параметрів екрану і пропускної спроможності мережного підключення, тепер може використовуватися в CSS-властивості «content» і «cursor». h2::before { content: image-set( url("small-icon.jpg") 1x, url("large-icon.jpg") 2x); }
- У CSS-властивості outline забезпечено відповідність контуру, встановленим за допомогою властивості border-radius.
- Для macOS моноширинний шрифт за замовчуванням змінено на Menlo.
- У інструментах для веб-розробників у панелі інспектування мережі з'явився перемикач між показом HTTP-відповідей у форматі JSON та у незмінному вигляді, в якому відповіді передані по мережі.
- Увімкнення за промовчанням формату зображень AVIF (AV1 Image Format), в якому задіяні технології внутрішньокадрового стиснення з формату кодування відео AV1, відкладено до наступного випуску. У версії Firefox 89 також планується запропонувати оновлений інтерфейс користувача та інтегрувати в адресний рядок калькулятор (включається через suggest.calculator до about:config)
Окрім нововведень та виправлення помилок у Firefox 88 усунуто 17 уразливостей, з яких 9 позначені як небезпечні. 5 вразливостей (зібрані під CVE-2021-29947) викликані проблемами роботи з пам'яттю, такими як переповнення буферів та звернення до звільнених областей пам'яті. Потенційно дані проблеми можуть призвести до виконання коду зловмисника при відкритті спеціально оформлених сторінок.
Джерело: opennet.ru