Компания Google публикува версия на web браузър Chrome 124. В същото време е достъпен стабилен release на свободния проект Chromium, който е основата на Chrome. Браузерът Chrome се различава от Chromium поради използването на логота на Google, наличието на система за изпращане на уведомления при срив, модули за възпроизвеждане на защитено от копиране видео съдържание (DRM), система за автоматично инсталиране на обновления, постоянно включена Sandbox изолация, предоставяне на ключове за Google API и предаване на RLZ параметри при търсене. За тези, които имат нужда от повече време за обновления, отделно се поддържа клонът Extended Stable, който е придружен с 8 седмици поддръжка. Следващото издание на Chrome 125 е планирано за 14 май.
Основни промени в Chrome 124:
- В версията за платформата Android в мениджъра на закладки е добавена поддръжка за запазване на закладки и списъци за отложено четене на сървъри Google, свързани с потребителска сметка.
- В Chrome за Android е внедрен нов метод за съхранение на локални пароли, които не се синхронизират с други устройства. Преди локалните пароли се съхраняваха в профила на Chrome, а сега ще бъдат разположени в хранилището за пароли, предоставяно от услугите на Google Play, което вече се използва за съхраняване на паролата за учетната запис в Google.
- В версиите за Windows, macOS и Linux в TLS е включена по подразбиране поддръжка на механизма за инкапсулиране на ключове (KEM, Key Encapsulation Mechanism), използващ хибридния алгоритъм X25519Kyber768, устойчив на подбране от квантови компютри. X25519Kyber768 представлява комбинация от механизма за обмен на ключове X25519, базиран на елиптични криви и в момента прилаган в TLS, с алгоритъма Kyber-768, използващ методи на криптография, основани на решаване на задачи от теорията на решетките, времето за решаване на които не се различава между обикновени и квантови компютри.
- При рисуването на текст от библиотеката Skia са взети предвид зададените в Windows настройки за контраст и цвят за технологията за изглаждане на текста ClearType, която позволява забележително повишаване на качеството на показване на шрифтовете на течнокристални монитори. В версиите за Linux значително се промени шрифта, използван в интерфейса.

- Предоставена е възможност за инсталация на всяка web страница като самостоятелно PWA приложение (Progressive Web Apps), дори ако тази страница не отговаря на критериите за PWA.
- В съответствие с изискванията на европейския закон DMA (Закон за цифровите пазари) е осигурен изход за диалог за избор на търсачка, която ще се използва по подразбиране. Възможностите за избор включват търсачките, достъпни в секцията с настройки „chrome://settings/search“. Търсачките в списъка се показват в случайни редове. В Chrome 120 този диалог беше тестван при 1% от потребителите и сега е активиран за всички.

- Въведен е подход за показване на запитване за предоставяне на разрешения, когато уеб приложението се свързва с API Web MIDI, позволяващ взаимодействие с свързаните към компютъра музыкални устройства с MIDI интерфейс. По-рано запитванията за разрешения се показваха само при изпращане или получаване на SysEx съобщения, а сега ще се показват при всяко обращение към API Web MIDI. Причините за промяната включват ситуации, при които случайни уеб страници забавят ексклузивния контрол върху MIDI контролер, блокирайки възможността за работа с него на други приложения. Също така се отбелязват проблеми, свързани с безопасността, тъй като API Web MIDI позволява пълно управление на MIDI устройството, дори за инсталиране на свои фърмуер.
- Напълно е прекратена поддръжката на API Web SQL, който не е стандартизиран, почти не се използва и изисква преработка, за да отговаря на съвременните изисквания за безопасност. Web SQL беше деактивиран по подразбиране от Chrome 119, но имаше опция за неговото възстановяване. Сега тази опция е премахната. За разработчици, на които е необходима подобна функционалност, се предлага да използват версия на библиотеката SQLite, компилирана в представление WebAssembly.
- Добавена е възможност за управление на посоката на текста, показван вертикално в елементите на уеб формите (select, meter, progress, button, textarea и input) при избор на вертикална ориентация чрез CSS свойството writing-mode. За изход на текста отгоре-надолу сега може да се използва свойството на формата „ltr“, а отдолу-нагоре — „rtl“.
- В API User-Agent Client Hints, който се развива като заместител на заглавката User-Agent, е добавена поддръжка на параметъра Sec-CH-UA-Form-Factors, чрез който клиентът може да информира сървъра за форм-фактора на устройството на потребителя (Desktop, Automotive, Mobile, XR, EInk и Watch). User-Agent Client Hints позволява организиране на селективен достъп до данни за конкретни параметри на браузъра и системата (версия, платформа и т.н.) само след запитване. сървъра.. Потребителят, от своя страна, може да определи каква информация да предостави на собствениците на уебсайтове. При използване на User-Agent Client Hints, идентификаторът на браузъра не се предава без явно запитване, а по подразбиране се посочват само основни параметри, което затруднява провеждането на пасивна идентификация.
- Добавена е възможност за управление на клонирането на отделни корени в Shadow DOM, извършвано чрез команди като cloneNode(). Възможността за клониране на кореновите възли на DOM се активира с параметъра clonable („attachShadow({clonable:true})“) или атрибута „shadowrootclonable“ (<template shadowrootmode=open shadowrootclonable>).

- Добавени са нови методи setHTMLUnsafe() и parseHTMLUnsafe() за използване на синтаксиса Shadow DOM от JavaScript. Методите setHTMLUnsafe() и parseHTMLUnsafe() по аналогия с innerHTML и DOMParser.parseFromString() позволяват вмъкване в елемент или разбиране на съдържанието в HTML формат, но се различават по поддръжката на обработка на елементи template с атрибута shadowrootmode.
- Добавена е поддръжка на API WebSocket Stream, позволяващ предаване на данни между браузъра и сървъра в потоков режим без поллинг (polling), което е оптимално за организация на предаване и приемане на постоянно постъпващи данни, например, в реализирането на чат. const wss = new WebSocketStream(WSS_URL); const {readable, writable} = await wss.opened; const reader = readable.getReader(); const writer = writable.getWriter(); while (true) { const {value, done} = await reader.read(); if (done) { break; } const result = await process(value); await writer.write(result); }
- Разширени са възможностите на API View Transitions, опростяващ създаването на преходни анимационни ефекти между различни състояния на DOM (например плавен преход от едно изображение на друго). В новата версия е добавена поддръжка за събитие „pageswap“, генерирано за обекта „window“, когато при навигация свързаният с него обект „document“ се заменя с нов. Също така е добавено свойството „render-blocking“, позволяващо блокирането на рендерирането на документа до завършване на анализа на важното съдържание.
- Добавен е параметър disallowReturnToOpener, предаван при извикване на метода requestWindow, който позволява премахването на бутона „назад“ в прозореца, отворен в режим „картинка в картинка“, за забрана на връщането към таба, от който е отворен прозорецът.
- Добавена е възможност за присвояване на атрибута CSSImportRule.styleSheet стойността NULL, за да се индикира отсъствието на свързана таблица с стилове. Добавен е атрибутът CSSKeyframesRule.length, който указва броя на индексируемите свойства.
- За редактирани полета е реализиран атрибутът „writingsuggestions“ за управление на включването на показване на предложения по време на въвеждане.
- В API WebGPU е добавена поддръжка на ServiceWorker и SharedWorker.
- Добавена е поддръжка на HTTP заглавката „Priority“, чрез която могат да бъдат предадени данни за приоритета на обработка на заявката (RFC 9218) по време на първоначалното обращение към ресурса.
- Внесени са подобрения в инструментите за уеб разработчици. Добавена е нова панел Autofill за инспектиране на информацията, използвана при автоматично попълване на формуляри.

В панела за инспектиране на CSS стилове е подобрена поддръжката на вложени стилове. В панела за измерване на производителността е предоставена възможност за скриване на излишни функции и свързани с тях дочерни извиквания за намаляване на шума в графиката. В панела за отстраняване на грешки в анимацията е добавена поддръжка на анимация, привързана към скролиране на съдържанието (Scroll-driven Animation). В панела за инспектиране на мрежата е реализирана възможност за задаване на параметри за загуба на пакети и размер на мрежовата опашка за проверка на работата на WebRTC приложения в условия на мрежови проблеми.

Освен нововведенията и поправките на грешки в новата версия, са отстранени 22 уязвимости. Много от уязвимостите са идентифицирани в резултат на автоматизирано тестване с инструментите AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Не са открити критични проблеми, които да заобикалят всички нива на защита на браузера и да изпълняват код в системата извън sandobox средата. В рамките на програмата за изплащане на възнаграждения за открити уязвимости за текущия релиз компанията Google е изплатила 13 награди на обща стойност 65 хиляди долара (една награда от $20000, $10000, $7000 и $2000, три награди от $5000 и $3000, две награди от $1000). Размерът на едно възнаграждение все още не е определен.
Източник: opennet.ru





