Компания Google публикува релиз на уеб браузъра Chrome 126. В същото време е налична и стабилна версия на свободния проект Chromium, който служи като основа за Chrome. Браузърът Chrome се различава от Chromium по използването на логотипи на Google, наличието на система за изпращане на известия в случай на срив, модули за възпроизвеждане на защитено от копиране видеосъдържание (DRM), система за автоматично инсталиране на актуализации, постоянно включване на Sandbox изолация, предоставяне на ключове за Google API и предаване на параметри RLZ при търсене. За тези, които се нуждаят от повече време за актуализация, отделно се поддържа клон Extended Stable, който се придружава от 8 седмици. Следващото издание на Chrome 127 е планирано за 23 юли.
Основни промени в Chrome 126:
- Вграденият PDF прегледач е интегрирало възможността за извлечение на текст от документа, активирана чрез опцията „Извлечи текст от PDF“ в контекстното меню. За извличане на текст от сканирани документи, в които текстът е поставен под формата на изображение, се използва механизъм за оптично разпознаване на символи (OCR) на базата на система за машинно обучение. Очаква се новата функция да улесни работата с PDF документи на хора с проблеми със зрението и ползващи екранни четеци. В бъдеще се планира реализиране на разпознаване на текст върху изображения показвани на страниците и на скрийншоти. OCR двигателят е включен по подразбиране за 50% от потребителите, а останалите могат да активират функцията през настройката „chrome://flags/#pdf-ocr“.

- На страницата на конфигуратора с параметри за производителност
(„Производителност / Икономия на памет“ в раздел chrome://settings/performance) е добавена възможността за настройка на нивото на агресивност на режима на икономия на памет (Memory Saver), който намалява потреблението на оперативна памет, освобождавайки паметта, заета от неактивни табове. Например, при избор на умерено ниво браузърът ще освобождава от паметта по-малко табове, отколкото при максимално установяване. Настройката, която по подразбиране е налична само за част от потребителите, може да бъде активирана чрез параметъра „chrome://flags/#memory-saver-aggressiveness“.
- За някои потребители в PDF прегледача по подразбиране е активирана нова архитектура OOPIF (out-of-process iframe), при която съдържанието на документа се обработва в отделен процес. Новата архитектура елиминира усложненията, свързани с реализцията на базата на механизма GuestView, и улеснява добавянето на нови възможности в PDF прегледача. За активиране на новата архитектура може да се използва настройката „chrome://flags/#pdf-oopif“.
- Добавен е режим за реактивно предварително зареждане (Reactive prefetch), който зарежда свързани с страницата ресурси по време на навигация, без да изчаква действителната им заявка, което позволява по-бързо отваряне на нови страници. За предсказването на ресурсите, които могат да бъдат необходими по-късно, се използва външна услуга на Google, която връща списък с препоръки след изпращането на URL адресите на страниците, по които се извършва навигация.
- Добавена е възможност за търсене в услугата Google Lens по всякакви изображения и текст, видими на екрана. Възможността се активира чрез контекстното меню, индикатора в адресната лента или менюто „⋮“, след което потребителят може да подчертае интересуващия го обект на екрана и да получи информация за него от Google Lens. При извършване на операцията на сървър Google се извършва изпращане на
снимка на екрана. Възможността в момента е активирана по подразбиране за 1% от потребителите. За активиране и деактивиране на поддръжката на Google Lens може да се използва параметърът „chrome://flags/#enable-lens-region-search-static-page“. - Подведени са резултатите от оптимизациите за ускорение на теста Speedometer 3 — за две години производителността на Chrome в този тест е нараснала с 72%. Например, работата на функцията SpaceSplitString, използвана при анализа на изрази тип „class=’foo bar'“, е била ускорена, оптимизирани са функциите за работа с паметта, премахнати са излишните операции при работа с елементи на уеб формите и са ускорени най-често използваните действия, оптимизирано е използването на innerHTML, ускорено е рисуването на шрифтове. Ускорения също така са постигнати благодарение на оптимизацията на сборщика на боклук в двигателя V8, чиято ефективност е повишена благодарение на активирането на събирането на боклук по време на паузата на процеса на рисуване, за да не се конкурира с приложението за ресурси CPU.

- Значително подобрена ефективността на работа с Cookie, което позволи да се намалят закъсненията при работа с уебсайтове. По-рано при всяко обращение към Cookie от процеса, отговарящ за обработката на сайта, се изпращаше синхронна IPC-заявка до процеса, осигуряващ мрежовото взаимодействие. Тъй като в уеб приложенията се използват активно стойности от Cookie, подобни заявки между процесите забавяха работата, при което 87% от запитванията към друг процес бяха излишни.
За решаване на проблема е внедрена нова архитектура, при която всеки процес съдържа своя копия на данните Cookie и се обръща директно към тях, а промените в Cookie, които, например, могат да настъпят при работа с същите Cookie в друга таб, се наблюдават чрез механизъм за версиониране. Същността на този механизъм е в това, че към всяка стойност
document.cookie е прикрепен брояч с номер на версия, който се съхранява в споделена памет, увеличава се при промяна на стойността и се сверява с наличния екземпляр при четене.
- Добавена е възможност за използване на API View Transitions за създаване на преходни анимационни ефекти при преминаване от една страница на друга в рамките на един и същи сайт (same-origin). По-рано този API можеше да се прилага само за ефекти между различни състояния на DOM на една страница (например, плавен преход от едно изображение към друго). За прилагане на ефектите на преход между различни документи трябва да се използва свойството „navigation: auto“ в @-правилото „view-transition“.
- Включен е API CloseWatcher, който позволява проследяване на Close-заявки в уеб приложенията и реагиране на тях (например, може да се създаде обработчик на натискане на бутона „назад“ на Android смартфон).
Close-заявките се формират при опит за затваряне на модални (<dialog>) и изскачащи диалози (popover=„”) чрез натискане на клавиша Esc, използване на бутона „Назад“ или сензорен жест на смартфони. - В API Gamepad, който позволява проследяване и обработка на събития от геймпади и игрови контролери, е добавена поддръжка за механизми за обратна връзка (trigger-rumble), например, вибрации.
- В интерфейсите GeolocationCoordinates и GeolocationPosition е добавен метод .toJSON() за сереализиране на обекти с координати в JSON формат.
- В версията за ChromeOS е добавена поддръжка на режима на табове (CSS свойство „display: tabbed“), което позволява използването на табове в едно уеб приложение, например за организиране на редактиране на няколко документа.
- Добавена е експериментална възможност (origin trial) за предварителен преглед на съдържанието, получавано от камера или микрофон.
- В API WebGPU значително е ускорена компилацията на шейдъри. В бекенда за графичния API Vulkan е оптимизирано зареждането на данни в GPU (осигурена е директна запись в буфера на GPU без междинно копиране).
- Направени са подобрения в инструментите за уеб разработчици. В секцията ‘Application > Storage’ е добавена възможност за инспектиране на данни, запазени с API Storage Buckets, позволяващи организиране на съхранение на данни с разделяне на хранилището на отделни сегменти, асоциирани с API IndexedDB и CacheStorage. В панела за оценка на производителността е добавена възможност за преместване и скриване на трекове, както и изключване на информация за изпълнението на скриптове от графика на производителността и включване на режим за изкуствено забавяне на производителността на системата с 20 пъти.

В панела за проследяване на мрежовата активност е добавена поддръжка за заместване в получения отговор с пълния ред на HTTP заглавието в формата „име: стойност“. В панела за наблюдение на потреблението на паметта са добавени филтри за идентифициране на неефективната работа с паметта, например наличие на дубликати на редове или оставяне на обекти, свързани с отсъединени DOM възли.

В допълнение на нововъведенията и отстраняване на грешки в новата версия са отстранени 21 уязвимости. Много от уязвимостите са открити в резултат на автоматизирано тестване с инструменти като AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. 9 от проблемите са оценени с висок риск. Не са установени критични проблеми, които да позволяват заобикаляне на всички нива на защита на браузъра и изпълнение на код в системата извън средата на пясъчника. В рамките на програмата за възнаграждение за откритие на уязвимости, компанията Google е изплатила 11 премии на обща стойност над 168 хиляди долара.
За уязвимостта CVE-2024-5839, свързана с проблема в реализацията на механизма за управление на паметта, е изплатена рекордна премия в размер на 100115 долара. Тази уязвимост е оценена с умерен риск, тъй като потенциално позволява повреждане на паметта в купчина при обработка на специфично оформено HTML съдържание. Освен това, е изплатена по една премия от 25000, 7000, 3000, 2000, 1000 и 500 долара, както и по две премии от 10000 и 5000 долара. Размерът на 7 награди все още не е определен.
Източник: opennet.ru






