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

- Извършена е ребалансировка на менюто. От основното и контекстното меню са премахнати рядко използвани и остарели елементи, за да се акцентира на най-важните функции. Останалите елементи са прегрупирани в зависимост от тяхната важност и популярност сред потребителите. В борбата с визуалните смущения са премахнати иконите до елементите на менюто, оставяйки само текстови обозначения. Интерфейсът за настройка на лентата и инструментите за уеб разработчици са преместени в отделно подменю „Допълнителни инструменти“ ("More Tools").


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

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

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

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





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

- В сборките за Linux е активирана употребата на композитен двигател WebRender за всички потребители на Linux, включително всякакви работни среди, всички версии на Mesa и системи с NVIDIA драйвери (по-рано WebRender беше включен само за GNOME, KDE и Xfce при наличие на Intel и AMD драйвери). WebRender е написан на Rust и позволява значително увеличаване на скоростта на рендиране и намаляване на натоварването на ЦП, като изнася на страна 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 (Delegated Credentials) за делегиране на краткотрайни сертификати, които решават проблема със сертификатите при осигуряване на достъп до сайта чрез мрежи за доставка на съдържание. Делегираните удостоверения въвеждат допълнителен междинен частен ключ, чийто срок на действие е ограничен до часове или до няколко дни (не повече от 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













