Издаден Chrome 105

Компания Google представи версия на уеб браузъра Chrome 105. Паралелно е наличен стабилен ъпдейт на свободния проект Chromium, който е основата на Chrome. Браузерът Chrome се различава от Chromium с използването на логотипите на Google, наличието на система за изпращане на уведомления при срив, модулите за възпроизвеждане на защитено от копиране видеосъдържание (DRM), автоматичната инсталация на ъпдейти, постоянно активирана Sandbox изолация, предоставянето на ключове за Google API и предаването на параметрите RLZ при търсене. За потребители, които се нуждаят от повече време за ъпдейт, отделно се поддържа версията Extended Stable, придружена от 8 седмици. Следващата версия на Chrome 106 е планирана за 27 септември.

Основни промени в Chrome 105:

  • Поддръжката на специализирани уеб приложения Chrome Apps е прекратена, като на тяхно място идват отделни уеб приложения, базирани на технологията Progressive Web Apps (PWA) и стандартните Web API. Първоначално Google обяви намерението си да се откаже от Chrome Apps през 2016 година и планираше да прекрати тяхната поддръжка до 2018 година, но след това отложи този план. В Chrome 105, при опит за инсталиране на приложения Chrome Apps, ще се появи предупреждение за прекратяване на тяхната поддръжка, но самите приложения ще продължат да се стартират. В Chrome 109 възможността за изпълнение на Chrome Apps ще бъде деактивирана.
  • Осигурена е допълнителна изолация на процеса „renderer“, отговарящ за рендиране. Този процес сега се изпълнява в допълнителен контейнер (App Container), реализиран върху съществуващата система за sandbox изолация. В случай на експлоатация на уязвимост в кода за рендиране добавените ограничения няма да позволят на нападателя да получи достъп до мрежата, благодарение на забраната за достъп до свързаните с мрежовите възможности системни повиквания.
  • Реализирано е собствено унифицирано хранилище на коренови сертификати на удостоверяващи центрове (Chrome Root Store). Новото хранилище все още не е включено по подразбиране и до приключване на внедряването сертификатите продължават да се проверяват с използване на специфичното за всяка операционна система хранилище. Тестируемото решение наподобява подхода на компанията Mozilla, която поддържа независимо хранилище на коренови сертификати за Firefox, използвано като първо звено за проверка на веригата на доверие на сертификатите при отваряне на сайтове по HTTPS.
  • Започна подготовка за прекратяване на поддръжката на API Web SQL, който не е стандартизиран, почти не се използва и изисква преработка, за да отговаря на съвременните изисквания за сигурност. В Chrome 105 е забранен достъпът до Web SQL от код, зареден без използване на HTTPS, и е добавено предупреждение в DevTools за остарялост на технологията. През 2023 година планират да премахнат API Web SQL. За разработчици, на които е необходима подобна функционалност, ще бъде подготвена замяна на базата на WebAssembly.
  • В Chrome sync е преустановена поддръжката на синхронизация с Chrome 73 и по-ранни версии.
  • За платформите macOS и Windows е активиран вграден преглед на сертификатите, който замени повикването на интерфейса, предоставян от операционната система. Преди вграденият преглед се използваше само в сборки за Linux и ChromeOS.
  • В версията за платформата Android са добавени настройки за управление на API «Topics & Interest Group», промотирани в рамките на инициативата Privacy Sandbox и позволяващи определяне на категории интереси на потребителя и използването им вместо проследяващи бисквитки за выделяване на групи потребители с подобни интереси без идентификация на отделните потребители. В предишното издание подобни настройки бяха добавени в версиите за Linux, ChromeOS, macOS и Windows.
  • При включване на разширената защита на браузъра (Safe Browsing > Enhanced protection) е реализирано събиране на телеметрични данни за инсталираните разширения, достъпа до API и свързването с външни сайтове. Указаните данни се използват на сървърите на Google за идентифициране на злонамерена активност и нарушения на правилата от браузърни разширения.
  • Преведена е в категория остарели и ще бъде блокирана в версията на Chrome 106 възможността за използване на не-ASCII символи в домейни, посочвани в заглавката на бисквитките (за IDN домейни трябва да се посочват домейни в формат punycode). Промяната ще доведе браузъра в съответствие с изискванията на RFC 6265bis и поведението, реализирано във Firefox.
  • Предложен API Custom Highlight, предназначен за произволно изменение стила на избраните текстови области, позволяващ да не сме ограничени от предоставения от браузъра фиксиран стил за избраните области (::selection, ::inactive-selection) и подсветка на синтактични грешки (::spelling-error, ::grammar-error). В първата версия на API е предоставена поддръжка за промяна на цвета на текста и фона чрез псевдоелементите color и background-color, но в бъдеще ще бъдат добавени и други възможности за персонализиране на стила.

    Като пример за задачи, които могат да бъдат решени чрез новия API, се споменават добавянето му в уеб-фреймворкове, предоставящи инструменти за редактиране на текст, собствени механизми за избор на текст, различно маркиране при едновременно съвместно редактиране от няколко потребителя, търсене във виртуализирани документи и отбелязване на грешки при проверка на правописа. Ако преди, за да се създаде нестандартно избиране, бяха нужни сложни манипулации с DOM дървото, то API Custom Highlight предлага готови операции за добавяне и премахване на подсветка, които не влияят на структурата на DOM и прилагат стилове, свързани с обектите Range.

  • В CSS е добавен запитването «@container», позволяваща формироване на стил на елементите в зависимост от размера на родителския елемент. «@container» наподобява запитванията «@media», но се прилага не към размера на цялата видима област, а към размера на блока (контейнера), в който е поставен елементът, което позволява задаването на собствена логика за избор на стил за дъщерните елементи, без значение къде точно на страницата е разположен елементът.
    Издаден Chrome 105
  • Добавен е CSS псевдокласът «:has()», който проверява наличието на дъщерен елемент в родителския. Например, «p:has(span)» обхваща елементите. <p>, в които има елемент <span>.
  • Добавен е API HTML Sanitizer, позволяващ изрязването на елементи от съдържанието, които влияят на визуализацията и изпълнението при извеждане чрез метода setHTML(). API-то може да бъде полезно за почистване на постъпващите данни от външни източници от HTML тагове, които могат да се използват за XSS атаки.
  • Предоставена е възможност за използване на API Streams (ReadableStream) за изпращане на fetch заявки преди да бъде заредено тялото на отговора, т.е. можете да започнете изпращането на данни, без да чакайте завършването на генерирането на страницата.
  • За инсталираните отделни уеб приложения (PWA, Progressive Web App) е предоставена възможност за промяна на оформлението на заглавната област на прозореца с помощта на компоненти Window Controls Overlay, които разширяват екранната площ на уеб приложението до целия прозорец и позволяват да се придаде на уеб приложението вид на обикновено настолно приложение. Уеб приложението може да управлява рисуването и обработката на входа в целия прозорец, с изключение на наложения блок с стандартните бутони за управление на прозореца (затваряне, минимизиране, разширяване).
    Издаден Chrome 105
  • Стабилизирана е възможността за достъп до Media Source Extensions от отделни работници (в контекста на DedicatedWorker), което може да се използва, например, за повишаване на производителността на буферираното възпроизвеждане на медийни данни чрез създаване на обект MediaSource в отделен работник и предаване на резултатите от неговата работа на HTMLMediaElement в основния поток.
  • В API Client Hints, който се развива за замяна на заглавието User-Agent и позволява селективно предоставяне на данни за конкретни параметри на браузъра и системата (версия, платформа и т.н.) само след запитване, сървър, добавена е поддръжка на свойството Sec-CH-Viewport-Heigh, позволяващо получаване на информация за височината на видимата област. Променен е форматът на разметката за задаване в таг «meta» параметрите Client Hints за външни ресурси: Беше: Стана:
  • Добавена е възможността за създаване на глобални обработчици на събития onbeforeinput (document.documentElement.onbeforeinput), чрез които уеб приложенията могат да преопределят поведението при редактиране на текст в блоковете ,