Компания Google публикува нова версия на уеб браузъра Chrome 133. В същото време е наличен стабилен релиз на свободния проект Chromium, който е основата на Chrome. Браузерът Chrome се отличава от Chromium с използването на логотипи на Google, наличието на система за уведомяване при срив, модули за възпроизвеждане на защитен видеоконтент (DRM), система за автоматично инсталиране на актуализации, постоянно включена Sandbox изолация, доставка на ключове за Google API и предаване на RLZ параметри при търсене. За потребителите, които се нуждаят от повече време за актуализация, отделно се поддържа версия Extended Stable, която е с 8 седмици поддръжка. Следващият релиз на Chrome 134 е планиран за 4 март.
Основни промени в Chrome 133:
- За 1% от потребителите е активирана поддръжка на замразяване на табове в режим на пестене на ток (Energy saver). Автоматично се замразяват табовете, които консумират много CPU ресурси и са скрити за повече от 5 минути. Табовете, които възпроизвеждат звук, както и тези, свързани с управление на външни устройства или провеждане на видео и аудио конференции, не попадат под замразяване (такива табове се определят на база достъп до API за работа с USB, Bluetooth, камера, входни устройства и микрофон, както и организация на канала на връзка чрез RTCDataChannel или MediaStreamTrack). Настройката за управление на включването на автоматичното замразяване може да се използва с „chrome://flags/#freezing-on-energy-saver“.
- В услугата Chrome Sync беше прекратена поддръжката на версии Chrome, които са по-стари от 4 години. За съхранение на информация, свързана с профила в Google и синхронизиране на данните на браузъра между системите, трябва да се използва поне версия Chrome 89.
- В версията за Android е добавена настройка за изключване на JIT оптимизаторите в JavaScript двигателя V8. Изключването на JIT може да е полезно за повишаване на сигурността при работа с потенциално опасни уеб приложения, намалявайки възможните вектори за атака. В версиите на Chrome за настолни системи същата настройка е налична на страницата chrome://settings/security, започвайки от версия Chrome 122.
- Приведен е в съответствие с стандарта за анализ на не-специфични схеми на URL (не включени в списъка на типичните схеми). Например, URL „git://example.com/path“.
- Разширени възможностите на CSS функцията attr(), която позволява да се използват стойности на определен HTML атрибут в CSS. Ако преди функцията attr() можеше да работи само с свойството «content» на псевдо-елементите и да преобразува стойности в CSS тип «<string>», то сега може да се прилага с всякакви CSS свойства и да преобразува стойности в всички CSS типове. В примера по-долу, цветът в CSS свойството «color» се задава на базата на анализа на собствения атрибут «data-foo», указан в елемента «div», а ако атрибутът не е указан, се използва стойността «red». <div data-foo="»blue»">test</div> … div { color: attr(data-foo type(<color>), red); }
- Реализиран е CSS-запитването „@container scroll-state()“, което позволява да се определи състоянието на скролиране на областта. Поддържат се състояния: „stuck“ — контейнер, прикрепен към една от страните на скролиращата област; „snapped“ — контейнер, прикрепен с подравняване по хоризонталата или вертикалата; „scrollable“ — контейнер, който може да се скролира в посочената посока.
- Добавени са CSS-свойствата „text-box“, „text-box-trim“ и „text-box-edge“, които позволяват прецизно управление на отстъпите преди и след текста. Свойството „text-box-trim“ определя областта на рязане (горе, долу или от двете страни), а „text-box-edge“ задава начина на рязане на ръбовете. Свойството „text-box“ комбинира функционалностите на „text-box-trim“ и „text-box-edge“.
- В CSS е добавен псевдо-класът „:open“, който позволява да се определи, когато за елементите
- Добавен е DOM-примитив moveBefore за преместване на елемент в DOM-деревото, без да се нулира неговото състояние.
- Добавен е интерфейсът FileSystemObserver, който позволява на сайтовете да следят промените в файловата система.
- В API-то PublicKeyCredential е добавен методът getClientCapabilities() за определяне на възможностите WebAuthn, поддържани от браузъра.
- В обекта Atomics е добавено свойство pause(), което информира, че кодът очаква освобождаване на заключването.
- В API-то WebCrypto е добавена поддръжка на схемата за споразумение за ключове X25519, която може да се използва чрез програмния интерфейс SubtleCrypto (методи generateKey, importKey, exportKey, deriveKey и deriveBits).
- В WebAssembly е реализирана възможността за използване на 64-битови указатели (Memory64), позволяващи работа с линейни области на памет, превишаващи 4 ГБ. Промяната не добавя нови инструкции в WebAssembly, а само позволява да се използват 64-битови индекси в съществуващите инструкции за таблици и области на памет. Работата в режима Memory64 води до значителни накладни разходи — в зависимост от вида на натоварването се наблюдава забавяне от 10% до два пъти.
- Разширени са възможностите на инструментите за уеб разработка. Осигурена е запазването на историята на чата с AI асистента между сесиите. Добавена е панелът „What’s new“ с преглед на промените в новата версия. Възможността за поставяне на скриптове в списъка с игнорирани, за да се избегне показването им в диаграмата за профилиране на производителността. В панела Performance на таба Insights е осигурено маркиране на изображения, размерът на които може да бъде оптимизиран, а на таба Summary е показана трасировката на стека на JavaScript повиквания (включително асинхронни повиквания).


Освен нововъведенията и корекциите на грешки в новата версия са устранени 12 уязвимости. Много от уязвимостите са открити в резултат на автоматизирано тестване с инструменти AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Две от проблемите, водещи до обръщения към вече освобождаваща памет в движка V8 и библиотеката Skia, са класифицирани с висока степен на опасност. Критични проблеми, които позволяват заобикаляне на всички нива на защита на браузъра и изпълнение на код в системата извън средата на sandbox, не са открити. В рамките на програмата за изплащане на парични награди за откриване на уязвимости, компанията Google е изплатила 2 награди на обща стойност 9000 долара (по една награда от $7000 и $2000). Размерът на едната награда все още не е определен.
Източник: opennet.ru


