Излезе браузерът Firefox 108. Освен това беше създадено обновление на версията с дългосрочна поддръжка – 102.6.0. В близко бъдеще версия Firefox 109 ще влезе в бета тестване, чийто релиз е насрочен за 17 януари.
Основни нововъведения в Firefox 108:
- Добавена е комбинация от клавиши Shift+ESC за бързо отваряне на страницата на мениджъра на процеси (about:processes), което позволява да се оцени кои процеси и вътрешни нишки консумират прекомерни ресурси от паметта и CPU.

- Оптимизирано е планирането на извеждането на кадри от анимации при високо натоварване, което доведе до подобряване на резултатите от теста MotionMark.
- При печат и запазване на PDF формати, предоставена е възможност за използване на символи на езици, различни от английския.
- Реализирана е поддръжка за правилна цветна корекция на изображения в съответствие с ICCv4 цветни профили.
- Гарантирано е правилното сработване на режима за показване на панела с отметки „само на нови табове“ (настройка „Only show on New Tab“) за празни нови табове.
- В about:config са добавени настройки cookiebanners.bannerClicking.enabled и cookiebanners.service.mode за автоматично натискане на банери, искящи разрешение за използване на бисквитки на сайтовете. В интерфейса на нощните сборки са реализирани превключватели за управление на автонажатието на бисквиткови банери свързани с определени домейни.
- Добавен е API Web MIDI, позволяващ на уеб приложението да взаимодейства с свързаните към компютъра на потребителя музикални устройства с MIDI интерфейс. API-то е достъпно само за страници, заредени чрез HTTPS. При извикване на метода navigator.requestMIDIAccess() при наличие на свързани MIDI устройства на компютъра, на потребителя се показва диалог за инсталиране на добавката „Site Permission Add-on“, необходима за активация на достъпа (вж. описанието по-долу).
- Предложен експериментален механизъм Site Permission Add-on за управление на достъпа на сайтове до потенциално опасни API и функции, изискващи разширени привилегии. Под опасни се подразбират функции, които могат да причинят физическа повреда на оборудването, да направят необратими промени, да се използват за инсталиране на злонамерен код на устройства или да доведат до изтичане на данни за потребители. Например, в контекста на API Web MIDI, добавката Permission Add-on се използва за предоставяне на достъп до устройство за синтез на звук, свързано към компютър.
- По подразбиране е включена поддръжката на карти за внос ("import map"), които позволяват управление на това, кои URL адреси ще се зареждат при внос на JavaScript файлове чрез изрази import и import(). Картата за внос се задава във формат JSON в елемент с нов атрибут "importmap". Например: { "imports": { "moment": "\/node_modules\/moment\/src\/moment.js", "lodash": "\/node_modules\/lodash-es\/lodash.js" } }
След обявяването на тази карта за внос в JavaScript кода, за зареждане и изпълнение на JavaScript модула "\/node_modules\/moment\/src\/moment.js" може да се използва изразът 'import moment from "moment";', без да се уточнява пътя (еквивалентно на 'import moment from "\/node_modules\/moment\/src\/moment.js";').
- В елемента е реализирана поддръжка на атрибутите "height" и "width", които определят височината и ширината на изображението в пиксели. Посочените атрибути действат само когато елементът е вложен в елемент и се игнорират при вложеност в елементи
- В CSS е предоставен набор от тригонометрични функции sin(), cos(), tan(), asin(), acos(), atan() и atan2().
- В CSS е реализирана функцията round() за избор на стратегия за закръгляване.
- В CSS е реализиран тип , който позволява използването в математически функции на известни математически константи, като числата Пи и E, а също и стойности за безкрайност и NaN. Например, "rotate(calc(1rad * pi))".
- В CSS запит "@container", който позволява да се форматират стиловете на елементи в зависимост от размера на родителския елемент (аналогичен на запитването "@media", което се прилага не към размера на цялата видима област, а към размера на блока (контейнера), в който е поставен елементът), е добавена експериментална поддръжка на мерни единици cqw (1% от ширината), cqh (1% от височината), cqi (1% от inline размера), cqb (1% от размера на блока), cqmin (най-малката стойност между cqi или cqb) и cqmax (най-голямата стойност между cqi или cqb). По подразбиране възможността е деактивирана и може да бъде активирана чрез параметъра layout.css.container-queries.enabled в about:config.
- В JavaScript е добавен методът Array.fromAsync за създаване на масив от асинхронно постъпващи данни.
- В HTTP заглавието CSP (Content Security Policy) е добавена поддръжка на директивите „style-src-attr“, „style-src-elem“, „script-src-attr“ и „script-src-elem“, които предоставят функционалност на директивите style и script, но с възможност за прилагане към отделни елементи и обработчици на събития, като onclick.
- Добавено е ново събитие domContentLoaded, което се задейства след завършване на зареждането на съдържанието.
- В метода .get() е добавена опция forceSync за принудителна синхронизация.
- Реализирана е отделна зона на панела за разполагане на уиджети от WebExtension добавки.
- Променена е логиката на работа на черния списък на Linux драйверите, несъвместими с WebRender. Вместо да се поддържа бял списък с работещи драйвери, е преминато на водене на черен списък с проблемни драйвери.
- Подобрена е поддръжката на протокола Wayland. Добавено е обработване на променливата на средата XDG_ACTIVATION_TOKEN с токен за активиране за протокола xdg-activation-v1, с помощта на който едно приложение може да переключи фокуса на друго. Решени са проблеми, възникващи при премахване на отметки с мишка.
- На повечето системи Linux е включена анимация на панела.
- В about:config е предоставена настройка gfx.display.max-frame-rate за ограничаване на максималната честота на обновяване на кадрите.
- Добавена е поддръжка на спецификацията за символи Emoji 14.
- По подразбиране е активирано WebGL разширението OES_draw_buffers_indexed.
- Реализирана е възможността за използване на GPU за ускорение на растеризацията на Canvas2D.
- На платформата Windows е включена sandbox изолация на процеси, взаимодействащи с GPU.
- Добавена е поддръжка на SIMD инструкции FMA3 (умножение-сложение с еднократен закръгление).
- Процесите, използвани за обработка на фонови табове, на платформата Windows 11 сега се стартират в режим на "Efficiency", при който планировщикът намалява приоритета на изпълнение, за да намали потреблението на CPU ресурси.

- Подобрения в версията за Android:
- Добавена е възможността за запазване на уеб страница като PDF документ.
- Внедрена поддръжка на групи от табове в панела (табовете могат да се местят след задържане на докосването върху таба).
- Добавен бутон за отваряне на всички отметки от указан раздел в нови табове в нов прозорец или в режим инкогнито.
Освен нововъведенията и корекциите на грешки, Firefox 108 отстранява 20 уязвимости. 16 уязвимости са обозначени като опасни, от които 14 уязвимости (събрани под CVE-2022-46879 и CVE-2022-46878) са причинени от проблеми с паметта, като преливания на буфери и достъп до вече освободени области на паметта. Потенциално тези проблеми могат да доведат до изпълнение на код от страна на нападателя при отваряне на специално създадени страници. Уязвимостта CVE-2022-46871 е свързана с използването на код от остаряла версия на библиотеката libusrsctp, съдържаща нерешени уязвимости. Уязвимостта CVE-2022-46872 позволява на нападателя, който е получил достъп до процеса на обработка на страниците, да заобиколи sandbox-изолацията в Linux и да прочете съдържанието на произволни файлове чрез манипулации с IPC-съобщения, свързани с буфера за обмен.
Източник: opennet.ru


