Адбыўся рэліз web-браўзэра 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 для аўтанаціску на банеры, якія запытваюць паўнамоцтвы па выкарыстанні Cookie на сайтах. У інтэрфейсе начных зборак рэалізаваны перамыкачы для кіравання аўтанаціскам на Cookie-банеры ў прывязцы да вызначаных даменаў.
- Дададзены API Web MIDI, які дазваляе з web-прыкладанні ўзаемадзейнічаць з падлучанымі да кампутара карыстача музычнымі прыладамі з інтэрфейсам 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», якія вызначаюць вышыню і шырыню выявы ў пікселях. Паказаныя атрыбуты дзейнічаюць толькі калі элемент » укладзены ў элемент « » і ігнаруюцца пры ўкладанні ў элементы і . Для адключэння апрацоўкі "height" і "width" у у about:config дададзена настройка «dom.picture_source_dimension_attributes.enabled».
- У 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:
- Дададзена магчымасць захавання web-старонкі ў выглядзе PDF-дакумента.
- Рэалізавана падтрымка групоўкі ўкладак у панэлі (укладкі можна памяняць месцамі пасля ўтрымлівання дотыку да ўкладкі).
- Дадзеная кнопка для адкрыцця ўсіх закладак з названай часткі ў новых укладках у новым акне або ў рэжыме інкогніта.
Акрамя навін і выпраўленні памылак у Firefox 108 ухілена 20 уразлівасцяў. 16 уразлівасцяў пазначаныя як небяспечныя, з іх 14 уразлівасцяў (сабраныя пад CVE-2022-46879 і CVE-2022-46878) выкліканыя праблемамі працы з памяццю, такімі як перапаўненні буфераў і зварот да ўжо вызваленых абласцей памяці. Патэнцыйна дадзеныя праблемы здольныя прывесці да выканання кода зламысніка пры адкрыцці спецыяльна аформленых старонак. Уразлівасць CVE-2022-46871 звязана з выкарыстаннем кода са састарэлай версіі бібліятэкі libusrsctp, якая змяшчае невыпраўленыя ўразлівасці. Уразлівасць CVE-2022-46872 дазваляе атакаваламу, які атрымаў доступ да працэсу апрацоўкі старонак, абыйсці sandbox-ізаляцыю ў Linux і прачытаць змесціва адвольных файлаў праз маніпуляцыі з IPC-паведамленнямі, злучанымі з буферам абмену.
Крыніца: opennet.ru


