релиз на уеб браузъра , както и Firefox 68.7 за платформата Android. Освен това, е оформено обновление с дългосрочна поддръжка . В близко бъдеще ще премине на етапа преминава във версия Firefox 76, чийто релиз е насрочен за 5 май (проект за 4-5 седмици ).
:
- Започна оформянето на в формат Flatpak.
- Обновен е дизайна на адресната лента. При кликване на адресната лента сега без нужда от започване на въвеждане веднага се показва падащ списък с най-често използваните връзки. Подсказките с резултатите от търсенето са оптимизирани за по-качествена работа на малки екрани. В областта на контекстните препоръки е осигурено показване на подсказки за решаване на типични проблеми, които възникват при работа с браузъра.
Спирането на показването на протокола https:// и поддомена „www.“ в падащия блок с връзки, показван по време на въвеждане в адресната лента (например, различаващите се по съдържание https://opennet.ru и https://www.opennet.ru ще станат неразличими). Протоколът http:// се показва в резултатите от търсенето без промени.
- За Linux е променено поведението при кликване в адресната лента (направено както в Windows и macOS) - единичен клик селектира всичкото съдържание без да го поставя в буфера за обмен, двойният клик селектира една дума, а тройният клик селектира всичкото съдържание и го поставя в буфера за обмен.
- Реализирана не зарежда изображения, находящи се извън видимата област, докато потребителят не превърти съдържанието на страницата до място, непосредствено преди изображението. За управление на отложеното зареждане на страниците в таг „img“ е добавен атрибут „“, който може да приема стойност „lazy“. Предполага се, че отложеното зареждане ще позволи да се намали потреблението на памет, да се намали трафика и да се увеличи скоростта на началното отваряне на страниците. За управление на отложеното зареждане в about:config е добавен параметър „dom.image-lazy-loading.enabled“.
- пълна поддръжка на WebGL в среди, използващи протокол Wayland. Досега нивото на производителност на WebGL в Linux сборките на Firefox оставяше повече да се желае заради отсъствието на поддръжка на хардуерно ускорение, поради проблеми с gfx драйверите за X11 и използване на различни стандарти. При използване на Wayland ситуацията се промени благодарение на появата на нов , използващ механизма . В допълнение към хардуерното ускорение на WebGL, бекендът също поддръжка за ускорено декодиране на видео H.264 чрез VA-API (Video Acceleration API) и FFmpegDataDecoder (поддръжка на VP9 и други видео кодеров) в Firefox 76). За управление на включването на ускорението в about:config са предложени параметрите «widget.wayland-dmabuf-webgl.enabled» и «widget.wayland-dmabuf-vaapi.enabled».
- За потребителите от Великобритания е активирано показването на платени спонсорирани блокове на началната страница в раздела с препоръчано съдържание от Pocket. Блоковете са ясно обозначени като реклама и могат да бъдат изключени в настройките. Рекламата преди това само на потребители от САЩ.
- режим за изчистване на стари бисквитки и данни от сайта при посещения на сайтове с код за проследяване, с които потребителят не е взаимодействал интерактивно. Режимът е насочен към борба с проследяването чрез пренасочвания.
- реализация на модални диалози, свързани с отделни табове и не блокиращи целия интерфейс.
- възможност за инсталиране и отваряне на сайтове под формата на приложения (Apps), позволяващи организиране на работата със сайта като с обикновена настолна програма. За активиране в about:config е необходимо да добавите настройка «browser.ssb.enabled=true», след което в контекстното меню за действия с страницата (три точки в адресната лента) ще се появи опция «Install Website as App», позволяваща разполагане на работния плот или в менюто на приложенията на ярлык за отделно отваряне на текущия сайт. Развитието развитие на концепцията «» (SSB), предвиждаща отваряне на сайта в отделен прозорец без меню, адресен ред и други елементи на браузерния интерфейс. В текущия прозорец се отварят само линкове към страниците на активния сайт, а преминаването по външни линкове води до създаване на отделен прозорец с обикновен браузер.

- реализация на режим ««, активиран чрез HTTP-заглавието «X-Content-Type-Options», което сега деактивира и логиката за автоматично определяне на MIME-типове за HTML документи, а не само за JavaScript и CSS. Режимът помага за защитата от атаки, свързани с манипулиране на MIME типовете. Браузерът по подразбиране анализира типа на обработвания контент и го обработва в зависимост от определения тип. Например, ако в файл «.jpg» се запише HTML код, при отварянето той ще бъде обработен като HTML, а не като изображение. Атакуващият може да използва формата за качване на изображения, за jpg файл, включващ HTML с JavaScript код, след което да публикува връзка към този файл, при директно отваряне на който JavaScript кодът ще бъде изпълнен в контекста на сайта, на който е извършено качването (може да определи cookie и други свързани с сайта данни на потребителя, отворил връзката).
- Осигурено е локално кеширане на всички доверени PKI сертификати на удостоверяващи центрове, известни на Mozilla, което е подобрило съвместимостта с неправилно конфигурирани уеб сървъри.
- На страниците, отворени по HTTP без криптиране, е забранено използването на API Web Crypto.
- За Windows е реализиран режим на директна композитинг (Direct Composition), който позволява повишаване на производителността и ускоряване на внедряването на системата за композитинг , написан на езика Rust и извеждащ настрана GPU операциите по рендиране на съдържанието на страницата.
- За macOS е реализирана експериментална възможност за използване на клиентски сертификати от общото хранилище на сертификати на операционната система (за да се активира в about:config, следва да се активира опцията security.osclientcerts.autoload). Започвайки от Firefox 72, посочената възможност беше достъпна само за Windows.
- След Linux, в сборките за macOS е използван механизъм за изолация , насочен към блокиране на експлоатацията на уязвимости в трети библиотеки от функции. На този етап изолацията е включена само за библиотеката , отговаряща за визуализация на шрифтовете. RLBox компилира C/C++ код от изолирана библиотека в нискоуровневен междинен код WebAssembly, който после се представя като WebAssembly модул, чиито права са зададени само в относимост към този модул. Събраните модули работят в отделна памет и нямат достъп до останалата част от адресното пространство. При експлоатация на уязвимост в библиотеката, нападателят ще бъде ограничен и няма да може да се обърне към области на паметта на основния процес или да предаде управлението извън изолирана среда.
- Атрибутът „type“ в елемента сега може да приема само стойността „text/css“.
- В CSS са реализирани функции , и .
- За CSS свойството е реализирана поддръжка на стойността „all“, която предписва задължителен разрив на линията на подчертаването и зачеркването при срещата с текстовите глифове (по-рано използваната стойност „auto“ адаптивно формираше разриви и не изключваше допира; при стойност all допирът с глифа е напълно забранен).
- В JavaScript е включена поддръжка на за инстанции на JavaScript класове, които позволяват задаване на предварително определени свойства, инициализирани извън конструктора.
class ClassWithStaticField {
static staticField = ‘статично поле’
} - Добавена е поддръжка на клас , предлагащ методи за анализ и обработка на параметри на езика, региона и начертанието, зададени от локализацията, както и за четене и запис на Unicode разширяващи тагове и запазване на потребителски настройки на локализацията в сериализиран формат;
- Реализацията на свойството Function.caller е приведена в съответствие с последния чернови вариант на новата спецификация ECMAScript (вместо TypeError сега се връща null, ако извикването е направено от функция с атрибут strict, async или generator).
- Към HTMLFormElement е добавен метод , който инициира софтуерно изпращане на данните от формата, подобно на клик върху бутона за изпращане на данни. Функцията може да се използва при разработка на собствени бутони за изпращане на формуляра, за които извикването на form.submit() не е достатъчно, тъй като не води до интерактивна проверка на параметрите, генериране на събитие ‘submit’ и предаване на данните, свързани с бутона за изпращане.
- Събитието submit сега се реализира от обект с тип SubmitEvent, а не Event. SubmitEvent включва нови свойства, които позволяват да се определи елементът, чийто повик е довел до изпращането на формата. Например, SubmitEvent позволява използването на един обработчик, общ за различни бутони и връзки, водещи до изпращането на формата.
- Реализирана е коректна предаване на събитието за клик при извикване на метода click() за отделени елементи (не част от DOM дървото).
- В API Добавена възможност за привръзка на анимация към началния или финалния ключов кадър, като браузърът автоматично изчислява крайното или началното състояние (достатъчно е да се посочи само първият или последният ключов кадър). Включени по подразбиране Animation.timeline getter, Document.timeline, DocumentTimeline, AnimationTimeline, Document.getAnimations() и Element.getAnimations().
- Добавена е възможност за активиране на интерфейса за профилиране на страници без инсталиране на отделно разширение чрез натискане на бутона „Enable Profiler Menu Button“ на сайта. . Добавен е режим за анализ на производителността само на активната табулация.
- В уеб консолата е добавен режим на мигновено изчисляване на изрази, който позволява на разработчиците по-бързо да разкриват и коригират грешки, като показва предварителния резултат при въвеждане на сложни изрази.
- В за измерване на области на страницата (Measuring Tool) е добавена възможност за промяна на размера на правоъгълната рамка (по-рано, ако се пуснеше бутона на мишката, рамката не можеше да се промени и в случай на неточно нацелване, се налагаше да се измерва от нула).
- В интерфейса за инспектиране на страници е добавена поддръжка за търсене на елементи с помощта на XPath изрази, в допълнение към вече наличното търсене чрез CSS селектори.
- Добавена е възможност за филтриране на WebSocket съобщения с помощта на регулярни изрази (по-рано се поддържаха само текстови маски).
- В JavaScript дебъгера е добавена поддръжка за свързване на точки на прекъсване с обработчици на WebSocket събития.
- Проведено е почистване на интерфейса за анализ на мрежовата активност. Оптимизирано е рисуването на таблици при едновременно обработване на много връзки. Направени са по-контрастни разделители на колони и бутони за прилагане на филтри. В панела за блокиране на мрежови заявки е реализирана възможност за използване на символа „*“ в URL маски (позволява оценка на поведението на сайта при проблеми с зареждането на ресурси).
Освен новостите и корекциите на грешки, в Firefox 75 е отстранена , от които няколко са отбелязани като критични, т.е. могат да доведат до изпълнение на код от злонамерен потребител при отваряне на специално оформени страници. В момента информацията с подробности за отстранените проблеми със сигурността не е налична, очаква се списъкът с уязвимости да бъде публикуван в рамките на няколко часа.
Източник: opennet.ru

