Състоя се изданието на уеб браузъра Firefox 89. Освен това беше създадено обновление на клона с дългосрочна поддръжка 78.11.0. В най-скоро време клонът Firefox 90 ще бъде преместен в бета тестване, а изданието е насрочено за 13 юли.
Основни нововъведения:
- Извършена е значителна модернизация на интерфейса. Обновени са иконите, унифициран е стилът на различните елементи и преработена е цветната палитра.
- Променен е дизайнът на панела с табове — ъглите на бутоните на табовете са закръглени и вече не се сливат с панела в долната си част (ефект на плаващ бутон). Премахнато е визуалното разделение на неактивните табове, но занимаваната от бутона зона се подсветлява при задържане на курсора над таба.

- Извършена е реорганизация на менюто. От основното и контекстните менюта са премахнати рядко използвани и остарели елементи, за да се акцентира на най-важните възможности. Останалите елементи са групирани в зависимост от важността и необходимостта за потребителите. В рамките на борбата с визуалните натрупвания, които разсейват вниманието, са премахнати иконите до елементите на менюто и са оставени само текстовите маркери. Интерфейсът за настройка на панела и инструментите за уеб разработчици са изнесени в отделно подменю


- Премахнато е вграденото в адресната лента меню „…“ (Page Actions), чрез което можете да добавите отметка, да изпратите линк в Pocket, да закопчеете таба, да работите с буфера за обмен и да инициирате изпращането на материал по електронна поща. Опциите, достъпни чрез менюто „…“, са преместени в други части на интерфейса и остават достъпни в раздела за настройка на панела, като могат да бъдат разположени поотделно на панела под формата на бутони. Например, бутонът за извикване на интерфейса за създаване на екранни снимки е достъпен чрез контекстното меню, показвано при щракване с десния бутон на мишката на страницата.

- Преработен е изплуващият страничен панел за настройка на страницата с интерфейс, който се показва при отваряне на нов таб.

- Променен и унифициран е дизайнът на информационните панели и модалните диалози с предупреждения, потвърждения и запитвания с другите диалози. Диалозите се показват със закръглени ъгли и са центрирани вертикално.

- След обновлението е осигурено показването на екранна заставка, предлагаща използването на Firefox като браузър по подразбиране в системата и даваща възможността за избор на тема за оформление. Предложените теми са: системна (взема предвид системните настройки при оформлението на прозорците, менюта и бутони), светла, тъмна и Alpenglow (цветна).





- По подразбиране в интерфейса на настройките на външния вид на панела е скрита бутона за активиране на компактния режим на показване на панелите. За връщане на настройката, в about:config е реализиран параметърът „browser.compactmode.show“. За потребителите, при които е активен компактният режим, параметърът ще се активира автоматично.
- Съкратен е броят на елементите, които отклоняват вниманието на потребителя. Премахнати са излишни предупреждения и уведомления.
- В адресната лента е интегриран калкулатор, позволяващ изчисляване на зададени в произволен ред математически изрази. Калкулаторът към момента е деактивиран по подразбиране и изисква промяна на настройката suggest.calculator в about:config. В едно от следващите издания се очаква също добавяне на вграден в адресната лента конвертор на величини, който позволява например преобразуването на футове в метри.

- В сборките за Linux е активирана употребата на движка за композиране WebRender за всички потребители на Linux, включително всякакви десктоп среди, всички версии на Mesa и системи с NVIDIA драйвери (по-рано webRender беше включен само за GNOME, KDE и Xfce при наличие на Intel и AMD драйвери). WebRender е написан на Rust и позволява съществени увеличения на скоростта на рендериране и намаляване на натоварването на CPU, като извежда на страната на GPU операциите по рендериране на съдържанието на страницата, които са реализирани чрез изпълнявани в GPU шейдъри. За деактивиране на WebRender в about:config може да се използва настройката „gfx.webrender.enabled“ или да се стартира Firefox с зададена променлива на средата MOZ_WEBRENDER=0.
- Методът на пълна защита на бисквитките (Total Cookie Protection) е активиран по подразбиране, който преди това се активираше само при избора на строг режим на блокиране на нежелано съдържание (strict). Сега за всеки сайт се използва отделно изолирано хранилище за бисквитки, което предотвратява използването им за проследяване на движението между сайтовете, тъй като всички бисквитки, зададени от заредените на сайта външни блокове, сега са свързани с основния сайт и не се предават при достъп до тези блокове от други сайтове. Изключение от правилото за междусайтово предаване на бисквитки е направено за услуги, които не са свързани с проследяването на потребители, като например тези, използвани за единна автентикация. Информацията за блокираните и разрешените междусайтови бисквитки се показва в менюто, което се появява при натискане на символа на щита в адресната лента.

- Втората версия на механизма SmartBlock е активирана, предназначена за решаване на проблеми на сайтове, произтичащи от блокирането на външни скриптове в режим на инкогнито или при активиране на усилено блокиране на нежелано съдържание (strict). SmartBlock позволява значително увеличение на производителността на някои сайтове, които забавят работата си поради невъзможността да заредят кода на скриптовете за проследяване. SmartBlock автоматично заменя скриптовете за проследяване с заместващи решения, които осигуряват коректно зареждане на сайта. Заместителите са подготвени за някои от популярните скриптове за проследяване на потребителите, включително тези от списъка на Disconnect, и съдържат скриптове с виджети на Facebook, Twitter, Yandex, Вконтакте и Google.
- Включена поддръжка на TLS-разширение DC (Делегирани удостоверения) за делегиране на краткоживеещи сертификати, което решава проблема със сертификатите при организиране на достъп до сайта чрез мрежи за доставка на съдържание. Делегираните удостоверения внедряват допълнителен междинен частен ключ, чийто срок на годност е ограничен до часове или няколко дни (не повече от 7 дни). Този ключ се генерира на базата на издадения от удостоверяващия център сертификат и позволява да се запази частният ключ от оригиналния сертификат в тайна от услугите за доставка на съдържание. За да се избегнат проблеми с достъпа след изтичане на срока на междинния ключ, е предвидена технология за автоматично обновяване, която се изпълнява на страна на оригиналния TLS-сървър.
- Представена е външна (не родна за системата) реализация на елементите на формите за въвеждане, такива като превключватели, бутони, падащи списъци и полета за текстово въвеждане (input, textarea, button, select), отличаваща се с по-съвременно оформление. Използването на отделна реализация на елементите на формите също положително се е отразило на производителността на страниците.
- Предоставена е възможност за манипулация на съдържанието на елементите <input> и <textarea> с помощта на команди Document.execCommand(), запазвайки историята на редактиране и без явно указване на свойството contentEditable.
- Реализиран е API Event Timing за измерване на закъсненията на събитията преди и след зареждането на страницата.
- Добавено е CSS-свойство forced-colors за определяне на това дали браузърът на страницата прилага зададената от потребителя ограничена цветова палитра.
- В CSS-свойствата ascent-override, descent-override и line-gap-override е добавен дескриптор @font-face за преопределение на метричните стойности на шрифта, което може да бъде использвано за унификация на визуализацията на шрифта в различни браузъри и операционни системи, както и за избягване на изместването на макета на страницата от уеб-шрифтовете.
- В CSS-функцията image-set(), позволяваща избор на изображение от набор от опции с различна разделителна способност, най-подходящо за настоящите параметри на екрана и пропускната способност на мрежовото свързване, е реализирана поддръжка на функцията type().
- В JavaScript по подразбиране е разрешено използването на ключовата дума await на най-високо ниво в модулите, което позволява по-нежна интеграция на асинхронни извиквания в процеса на зареждане на модулите, без да е необходимо опаковане в "async function". Например, вместо (async function() { await Promise.resolve(console.log(‘test’)); }()); сега може да се пише await Promise.resolve(console.log(‘test’));
- На 64-битови системи е разрешено създаването на структури ArrayBuffers с размер над 2GB (но не по-големи от 8GB).
- Подкрепата за събитията DeviceProximityEvent, UserProximityEvent и DeviceLightEvent, които не се поддържат в други браузъри, е прекратена.
- В панела за инспекция на страниците е подобрена навигацията с клавиатура в редактируемите свойства на BoxModel.
- В версиите за Windows е подобрен външният вид на контекстните менюта и е ускорен стартът на браузъра.
- В версиите за macOS е реализирано използването на родни за платформата контекстни менюта и ленти за превъртане. Добавена е поддръжка за ефект на превъртане извън видимата зона (overscroll), сигнализиращ за достигане на края на страницата. Добавена е поддръжка за интелигентно мащабиране, активирана с двоен клик. Добавена е поддръжка за тъмен режим. Решени са проблеми с несъответствия в цветовете в CSS и изображенията. В режим на цял екран е предоставена възможност за скриване на панелите.
Освен новостите и поправките на грешки в Firefox 89 са отстранени 16 уязвимости, от които 6 са маркирани като опасни. 5 уязвимости (събрани под CVE-2021-29967) са причинени от проблеми с паметта, включително препълване на буфери и достъп до вече освободени области от паметта. Тези проблеми потенциално могат да доведат до изпълнение на код от злонамерен софтуер при отваряне на специално оформени страници.
Източник: opennet.ru













