Излезе уеб браузърът Firefox 122 и беше съставено обновление на версията с дългосрочна поддръжка — 115.7.0. Версията Firefox 123 премина в етап бета тестване, чийто релиз е насрочен за 20 февруари.
Основни нововъведения в Firefox 122:
- Разширени са възможностите, свързани с представянето на препоръки при въвеждане в адресната лента. За някои търсачки е реализирана възможността за показване на изображения и текстови описания в препоръките. При търсене на информация, свързана с уеб разработка, се осигурява извеждането на препоръки за линкове към документация в MDN (Mozilla Developer Network).

- Започна подготовката на готови deb пакети за Ubuntu, Debian и Linux Mint. Създаваните пакети са съвместими с традиционните сборки на Firefox за Debian и Ubuntu, предлагани за изтегляне в архиви ".tar.bz2". При съставяне на пакетите в компилатора са включени допълнителни оптимизации, както и флагове за увеличаване на сигурността. Включен е .desktop файл за разполагане на икона на работния плот и в менюто на дистрибуцията. Инструкция за инсталиране на Firefox от APT репозиторията на Mozilla.
- Подобрен е качеството на преводите на страниците с помощта на вградената система за машинен превод. Решени са проблемите с изчезването на преведената страница и нарушаването на работата на интерактивните джаджи.
- За повишаване на защитата от XSS атаки и за подобряване на преносимостта между браузърите в SVGUseElement е прекратена поддръжката на URL "data:".
- Добавена е защита от изтичане на информация за предварително посещавани линкове чрез анализ на цвета на пикселите с помощта на филтри, използващи параметъра currentColor. Изходът на подобни филтри вече няма да може да се изчете от canvas в SVG, тъй като те могат да се използват за определяне на цвета, зададен чрез селектора ":visited".
- В сборките за macOS е добавена поддръжка на технологията Passkey (използва се само в iCloud Keychain), която позволява на потребителя да премине аутентификация без пароли, използвайки биометрични идентификатори, като пръстов отпечатък или разпознаване на лице.
- Осигурена е обработка на токена за автоматично попълване "webauthn". В диалозите за автоматично попълване на форми е реализиран интерфейс за свързване с помощта на Passkey.
- В режима на частно разглеждане скриптовете имат възможност да запазват данни чрез API Cache с цел унификация на поведението в частния и обикновения режим (разликата между тях може да бъде използвана за определяне дали потребителят работи в частен режим).
- В WebRTC по подразбиране е включена поддръжка на механизма за предварително коригиране на грешки ULPFEC (Uneven Level Protection Forward Error Correction), който позволява възстановяване на повредени или изгубени пакети. Използването на ULPFEC предоставя възможност за подобряване на качеството на видеото за потребители с проблемни канали на свързване.
- Разрешено използването на елемента <hr> в рамките на елемента <select> за вмъкване на разделители в списъци, формирани на базата на елемента <select>.
- Добавена е възможност за използване на метода showPicker с елементи за програмирано извикване на предоставената от браузъра реализация на падащото меню.
- Правилата за разпад на редове при показване на текст на уебстраници са приведени в съответствие със стандарта Unicode. За азиатските езици, като японски и китайски, е реализирана поддръжка за изолиране на цели думи с двоен клик на мишката в текста.
- Включено е CSS свойство offset-position, задаващо началната позиция на елемента и обикновено се използва заедно със свойството offset-path за определяне на траекторията на движение на анимационните обекти.
- В CSS свойството offset-path е добавена поддръжка на функцията ray(), която определя сегмент от линията, по която трябва да следва анимирния елемент, както и стойностите basic-shape и coord-box.
- В CSS свойствата clip-path и offset-path е добавена поддръжка на функциите rect() и xywh() за създаване на основни фигури.
- Добавена е поддръжка за анимиране на SVG атрибута viewBox, с използването на SMIL (Synchronized Multimedia Integration Language), предназначен за анимиране на SVG елементи.
- Парсерът на URL, извикван за линкове с неизвестна схема, е променен на DefaultURI в съответствие с изискването на спецификацията.
- Включена е поддръжка на методите ArrayBuffer.prototype.transfer() и ArrayBuffer.prototype.transferToFixedLength() за прехвърляне на притежание на памет от един ArrayBuffer на друг. След предаването буферът се отделя от оригиналната памет и става неподходящ за използване. За проверка на състоянието на буфера може да се използва свойството ArrayBuffer.prototype.detached.
- Реализиран е API LargestContentfulPaint, предоставящ информация за времето за рендиране на най-голямото изображение или текст преди потребителят да започне взаимодействие със страницата.
- Добавена е поддръжка на API Screen Wake Lock, позволяваща на уеб приложението, например мултимедийния плейър, да блокира призива на екрана след дълга неактивност на потребителя.
- Добавена е експериментална поддръжка на API:
- API Декларативен Shadow DOM (активира се чрез dom.webcomponents.shadowdom.declarative.enabled в about:config) за създаване на нови коренови клони в Shadow DOM, например за разделяне на импортируемия стил на компонента и свързания с него подклон DOM от основния документ. Предложеният декларативен API позволява да се освободят клонове на DOM само с HTML, без необходимост от писане на JavaScript код.
- API Popover (активира се чрез dom.element.popover.enabled в about:config) за създаване на UI елементи, които се показват над други елементи на web интерфейса. Например, с новото API можете да създавате менюта за действия, да показвате подсказки за попълване на формуляри, да реализирате обучителни интерфейси и да захващате съдържание. Показването над другите елементи става чрез задаване на атрибута „popover“, като местоположението, каскадирането и фокуса на въвеждане се обработват автоматично. За разлика от елементите с атрибут „dialog“, елементите с атрибут „popover“ не използват модален режим, поддържат събития и лесно се отменят.
- Инструменти за четене и писане в клипборда (активира се чрез dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readText и dom.events.asyncClipboard.writeText в about:config), позволяващи използването на интерфейса ClipboardItem и методите read(), readText() и write().
- Обект Intl.Segmenter (включен само в нощните версии на Firefox) за точно сегментиране на текст в низ с оглед на локализация, например за разделяне на думи в езици, които не използват интервали за отделяне на думи.
- В инструментите за web разработка в режим на инспектиране при редактиране на селектор или свойства, натискането на клавиш Enter сега потвърдява въвеждането и поставя фокуса на съответния елемент, а не премества фокуса на следващото поле за въвеждане (за преминаване на фокуса на следващото поле можете да използвате табулацията).
- В Android версията е предоставена възможност за включване на механизма GPC (Global Privacy Control), който замества заглавието „DNT“ (Do Not Track) и позволява информиране на сайтовете за забрана за продажба на лични данни и тяхната употреба за проследяване на предпочитанията или движението между сайтовете. Предоставена е възможност за настройване на Firefox като програма по подразбиране за преглеждане на PDF файлове. За да се засили защитата от пасивна идентификация на потребителя, в заглавието User-Agent сега винаги се указва „Android 10“, независимо от фактическата версия на платформата.
В допълнение към нововъведенията и корекциите на грешки, в Firefox 122 са отстранени 15 уязвимости (5 от които са оценени като опасни). 8 уязвимости са предизвикани от проблеми с паметта, като преливане на буфери и достъп до вече освободени области на паметта. Потенциално тези проблеми биха могли да доведат до изпълнение на код от злонамерен потребител при отваряне на специално оформени страници.
Допълнително може да се отбележи обявлението за създаването на отделна услуга от Mozilla за проследяване на факти на дискриминация на Firefox на различни платформи и решаване на установените проблеми съвместно с производителите на платформите. В момента на сайта са обобщени техническите проблеми, възникващи при работа на Firefox в системите на Apple, Google и Microsoft. Например на платформата Android е отбелязано невъзможността за импортиране на настройки на браузъра и влошаване на качеството на търсенето. В Windows е упоменат забраната за програмна смяна на браузъра по подразбиране и налагането на Microsoft Edge. В Android и Windows също се споменава запазването на някои привързаности към Chrome и Edge дори след промяна на браузъра по подразбиране.
Източник: opennet.ru

