Компания Google представи версия на уеб браузъра Chrome 89. Същевременно е наличен стабилен вариант на свободния проект Chromium, който е основата на Chrome. Браузърът Chrome се отличава с използване на логата на Google, наличието на система за известия при срив, модули за възпроизвеждане на защитено видео съдържание (DRM), автоматично инсталиране на обновления и предаване на RLZ параметри при търсене. Следващото издание на Chrome 90 е планирано за 13 април.
Основни промени в Chrome 89:
- Версията на Chrome за Android оттук нататък ще може да се стартира само на устройства, сертифицирани от Play Protect. В виртуални машини и емулатори на Chrome за Android ще може да се използва, ако се емултира допустимо устройство или емулаторът е разработен от Google. Статусът на сертифицираното устройство може да бъде проверен в приложението Google Play в секцията настройки (в долната част на страницата с настройки се показва статусът „Play Protect certification“). За несертифицирани устройства, например при използване на алтернативни фърмуер версии, на потребителите се предлага да регистрират устройствата си, за да стартират Chrome.
- За малък процент потребители е включено автоматично отваряне на сайтове по подразбиране чрез HTTPS при въвеждане на имената на хостовете в адресната лента. Например, при въвеждане на хост example.com по подразбиране ще се отвори сайтът https://example.com, а ако възникнат проблеми при отварянето, ще се върне обратно към http://example.com. За управление на използването по подразбиране на „https://“ е предложена настройка „chrome://flags#omnibox-default-typed-navigations-to-https“.
- Активирана е поддръжка на профили, което позволява на различни потребители да разделят своите акаунти при работа с един и същ браузър. Например, чрез профили можете да организирате достъпа на членове на семейството или да разделите сесиите, използвани за работа и лични интереси. Потребителят може да създаде нов профил в Chrome и да го настрои да се активира при свързване с определен акаунт в Google, което позволява на различни потребители да споделят Favorit, настройки и история на посещенията. При опит за влизане в акаунт, свързан с друг профил, на потребителя ще бъде предложено да превключи на този профил. При наличие на връзка с няколко профила, ще бъде предоставена възможност за избор на желания профил. Възможно е свързването на цветови схеми към различни профили за визуално разграничаване на потребителите.

- Активирано е показването на миниатюри на съдържанието при задържане на курсора върху табовете в горната лента. Преди прегледът на съдържанието на табовете беше деактивиран по подразбиране и изискваше промяна на настройката „chrome://flags/#tab-hover-cards“.

- За част от потребителите е активирана функцията „Списък за четене“ (Reading List, „chrome://flags#read-later“), при активиране на която при натиск на звездичката в адресната лента освен бутона „Добави отметка“ се появява втори бутон „Добави в списък за четене“, а вдясно в лентата с отметки се появява меню „Списък за четене“, което изброява всички преди това добавени страници. При отваряне на страница от списъка, тя се маркира като прочетена. Страниците в списъка също могат да бъдат маркирани като прочетени и непрочетени ръчно или изтрити от списъка.

- За потребителите, които влизат в акаунта си в Google, без активиране на Chrome Sync, е предоставен достъп до методите за плащане и паролите, запазени в акаунта в Google. Възможността е активирана за част от потребителите и постепенно ще бъде предоставена и на останалите.
- Активирана е поддръжка за бързо търсене на табове, която по-рано изискваше активиране чрез флага „chrome://flags/#enable-tab-search“. Потребителят може да прегледа списъка на всички отворени табове и бързо да филтрира необходимия таб, независимо дали се намира в текущото или друго прозорец.

- За всички потребители е спрян процесът на въвеждане на отделни думи в адресната лента като опити за отваряне на вътрешни сайтове. По-рано, когато се въвеждаше една дума в адресната лента, браузърът първо опитваше да определи наличието на хост с такова име в DNS, считайки, че потребителят иска да отвори подтеха, а след това пренасочваше заявката към търсачката. По този начин, собственикът на DNS сървъра, указан в настройките на потребителя, получаваше информация за търсенията, съдържащи се от една дума, което се оценяваше като нарушение на конфиденциалността. За предприятия, използващи интернет хостинг без подтеми (например, "https://helpdesk/") е предоставена опция за връщане на предишното поведение.
- Предоставена е възможност за фиксиране на версията на добавката или приложението. Например, за използването в предприятия само на удостоверени добавки, администраторът може с помощта на новата политика ExtensionSettings да настрои Chrome да използва собствен URL за изтегляне на актуализации вместо указаното в манифеста на добавката.
- На системите x86 за работа на браузъра сега е задължително поддръжката на инструкциите SSE3 от процесора, които се поддържат от Intel от 2003 година, а от AMD — от 2005 година.
- Добавени са допълнителни API, насочени към предоставяне на функционалност, която може да замени външни бисквитки, използвани за проследяване на движението на потребителя между сайтовете в кодовете на рекламни мрежи, социални мрежи и системи за уеб анализи. Предложени за тестване са следните API:
- Trust Token за разделяне на потребителите без използване на междусайтови идентификатори.
- First party sets — позволява на свързани домейни да се обявят за основни, за да може браузърът да вземе предвид тази връзка при междусайтовите заявки.
- Schemeful Same-Site за разширяване на понятието same-site за различни схеми на URL, т.е. http://website.example и https://website.example ще се обработват като един сайт при междусайтовите заявки.
- Floc за определяне на категорията интереси на потребителя без извършване на индивидуална идентификация и без свързване с историята на посещение на конкретни сайтове.
- Conversion Measurement за оценка на активността на потребителя след кликване върху реклама.
- User-Agent Client Hints за замяна на User-Agent и селективно предоставяне на данни за специфични параметри на браузъра и системата (версия, платформа и т.н.).
- Добавен е API Serial, позволяващ на сайтовете да четат и записват данни през последователен порт. Причината за появата на подобен API е възможността да се създават уеб приложения за директно управление на устройства като микроконтролери и 3D принтери. За достъп до периферното устройство е необходимо явно потвърждение от потребителя.
- Добавен е API WebHID за ниско ниво достъп до HID устройства (Human interface device, клавиатури, мишки, джойстици, сензорни панели), позволяващ реализиране на логиката за работа с HID устройството на JavaScript за организиране на работа с редки HID устройства без необходимост от специфични драйвери в системата. Новият API е насочен преди всичко към предоставяне на поддръжка за джойстици.
- Добавен е API Web NFC, позволяващ на уеб приложенията да четат и записват NFC тагове. Примери на приложение на новия API в уеб приложенията включват предоставяне на информация за музейни експонати, провеждане на инвентаризация, получаване на данни от идентификационни значки на участниците в конференции и т.н. Изпращането и сканирането на тагове се извършва с помощта на обектите NDEFWriter и NDEFReader.
- API Web Share (обект navigator.share) е изваден извън рамките на мобилните устройства и сега е достъпен за потребители на настолни браузъри (в момента само за Windows и Chrome OS). API Web Share предоставя средства за споделяне на информация в социалните мрежи, например, позволява генерирането на унифициран бутон за публикуване в социалните мрежи, които използва посетителят, или организиране на изпращане на данни до други приложения.
- В версиите за Android и компонента WebView е включена поддръжка за декодиране на формата на изображения AVIF (AV1 Image Format), при който се използват технологии за междинно компресиране от видео формата AV1 (в настолните версии поддръжката на AVIF е включена от Chrome 85 насам). Контейнерът за разпространение на компресираните данни в AVIF е напълно идентичен на HEIF. AVIF подкрепя както изображения с HDR (High Dynamic Range) и цветово пространство Wide-gamut, така и в стандартен динамичен диапазон (SDR).
- Добавен нов Reporting API за получаване на информация за нарушения на правилата за безопасна употреба на страницата на привилегированите операции, зададени чрез заглавието COOP (Cross-Origin-Opener-Policy), който също така позволява да се преведе COOP в режим на отстраняване на грешки, работещ без блокиране на нарушенията на правилата.
- Добавена е функцията performance.measureUserAgentSpecificMemory(), която определя размера на паметта, изразходвана при обработката на страницата.
- За съответствие с изискванията на уеб стандарта, всички URL адреси „data:” сега се третират като потенциално надеждни, т.е. явяват се част от защитен контекст.
- В API Streams е добавена поддръжка за потоци от байтове (Byte Streams), които са специално оптимизирани за ефективен трансфер на произволни набори от байтове и минимизират броя на операциите за копиране на данни. Изходът на потока може да бъде записан в примитиви като низове или ArrayBuffer.
- В SVG елементите е реализирана поддръжка на пълен синтаксис на свойството „filter“, което позволява едновременно да се прилагат към SVG и не SVG елементи функции за филтриране като blur(), sepia() и grayscale().
- В CSS е реализиран псевдо-елементът „::target-text“, който може да се използва за маркиране на фрагмент, на който е бил направен преход по текста (scroll-to-text) с друг стил, различен от този, който браузърът използва при подсветката на намереното.
- Добавени са CSS свойства за управление на заоблеността на ъглите: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- Добавено е CSS свойство forced-colors за определяне дали браузърът прилага зададена от потребителя ограничена цветова палитра на страницата.
- Добавено е CSS свойството forced-color-adjust за деактивиране на принудителното ограничаване на цветовете за отделни елементи, оставяйки пълни възможности за управление на цветовете през CSS.
- В JavaScript е разрешено използването на ключовата дума await в модули на най-високо ниво, което позволява по-гладка интеграция на асинхронни повиквания в процеса на зареждане на модули и да се избегне опаковката в „async function“. Например, вместо (async function() { await Promise.resolve(console.log(‘test’)); }()); сега можете да пишете await Promise.resolve(console.log(‘test’));.
- В JavaScript движка V8 е ускорено извикването на функции, в ситуация, когато броят на предадените аргументи не съответства на определените параметри на функцията. При разминаване на броя аргументи в режим без JIT производителността се е увеличила с 11.2%, а при използване на JIT TurboFan с 40%.
- Внесена е голяма порция малки подобрения в инструментите за уеб разработчици.
Освен нововведенията и корекциите на грешки в новата версия са отстранени 47 уязвимости. Много от уязвимостите са открити чрез автоматизирано тестване с инструменти AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Не са установени критични проблеми, които да позволят заобикалянето на всички нива на защита на браузъра и изпълнението на код в системата извън средата на песъчницата. Въпреки това е отбелязано, че една от отстранените уязвимости (CVE-2021-21166), свързана с времето на живот на обектите в звуковата подсистема, има характер на 0-day проблем и до отстраняването си е била използвана в един от експлоита. В рамките на програмата за изплащане на парични награди за откритие на уязвимости за текущото издание компания Google е изплатила 33 награди на стойност 61000 долара (две награди от $10000, две награди от $7500, три награди от $5000, две награди от $3000, четири по $1000 и две награди по $500). Размерът на 18 награди все още не е определен.
Източник: opennet.ru




