Реліз Chrome 105

Компанія Google представила реліз web-браузера Chrome 105. Одночасно доступний стабільний випуск вільного проекту Chromium, який є основою Chrome. Браузер Chrome відрізняється від Chromium використанням логотипів Google, наявністю системи відправлення повідомлень у разі краху, модулями для відтворення захищеного від копіювання відеоконтенту (DRM), системою автоматичної установки оновлень, постійним включенням Sandbox-ізоляції, постачанням ключів до Google API та передачею при пошуку RL параметрів. Для тих, кому потрібно більше часу на оновлення, окремо підтримується гілка Extended Stable, що супроводжується 8 тижнів. Наступний випуск Chrome 106 заплановано на 27 вересня.

Основні зміни в Chrome 105:

  • Припинено підтримку спеціалізованих web-додатків Chrome Apps, на зміну яким прийшли відокремлені web-додатки на базі технології 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 і дозволяє визначати категорії інтересів користувача та використовувати їх замість відстежуваних Cookie для виділення груп користувачів зі подібними інтересами без ідентифікації окремих користувачів. У минулому випуску подібні установки були додані у версії для Linux, ChromeOS, macOS і Windows.
  • При включенні розширеного захисту браузера (Safe Browsing > Enhanced protection) реалізовано збір телеметрії про встановлені доповнення, звернення до API та з'єднання із зовнішніми сайтами. Вказані дані використовуються на серверах Google для виявлення шкідливої ​​активності та порушення правил браузерними доповненнями.
  • Переведена в категорію застарілих і буде заблокована у випуску Chrome 106 можливість використання не-ASCII символів у доменах, що вказуються в заголовку Cookie (для IDN-доменів слід вказувати домени у форматі punycode). Зміна приведе браузер у відповідність до вимог RFC 6265bis та поведінкою, реалізованою у Firefox.
  • Запропоновано API Custom Highlight, призначений для довільної зміни стилю виділених областей тексту і дозволяє не обмежуватися браузером, що надається фіксованим стилем для виділених областей (::selection, ::inactive-selection) і підсвічування синтаксичних помилок (::spelling-error, ::grammar- error). У першому варіанті API надано підтримку зміни кольору тексту та фону за допомогою псевдоелементів color і background-color, але надалі будуть додані й інші можливості налаштування стилю.

    Як приклад завдань, які можна вирішити за допомогою нового API, згадується додавання до web-фреймворку, що надають інструменти для редагування тексту, власних механізмів виділення тексту, різного виділення при одночасному спільному редагуванні кількома користувачами, пошуку у віртуалізованих документах та позначки помилок під час перевірки правопису . Якщо раніше, для створення нестандартного виділення були потрібні ускладнені маніпуляції з деревом DOM, то API Custom Highlight надає готові операції для додавання та видалення підсвічування, що не впливають на структуру DOM і застосовують стилі у прив'язці до об'єктів Range.

  • У CSS додано запит @container, що дозволяє формувати стиль елементів залежно від розміру батьківського елемента. "@container" нагадує запити "@media", але застосовується в прив'язці не до розміру всієї видимої області, а до розміру блоку (контейнера), в який поміщений елемент, що дозволяє задавати для дочірніх елементів власну логіку вибору стилю, яка не залежить від того, в якому місці на сторінці розміщений елемент.
    Реліз Chrome 105
  • Доданий CSS-псевдоклас «:has()» для перевірки з урахуванням наявності дочірнього елемента в батьківському. Наприклад, "p:has(span)" охоплює елементи , усередині яких є елемент .
  • Доданий API HTML Sanitizer, що дозволяє вирізати з вмісту елементи, що впливають відображення та виконання при виведенні через метод setHTML(). API може бути корисним для чищення даних, що надходять ззовні, на предмет вирізання з них HTML-тегів, які можуть використовуватися для здійснення XSS-атак.
  • Надано можливість використання API Streams (ReadableStream) для відправлення fetch-запитів до завантаження тіла відповіді, тобто. можна розпочати відправлення даних не чекаючи завершення генерації сторінки.
  • Для встановлюваних відокремлених web-додатків (PWA, Progressive Web App) надано можливість зміни оформлення області заголовка вікна за допомогою компонентів Window Controls Overlay, що розширюють екранну область web-програми на все вікно і дозволяють надати web-програмі вигляд звичайної настільної програми. Web-додаток може керувати відмальовуванням та обробкою введення у всьому вікні, за винятком накладеного блоку зі штатними кнопками управління вікном (закриття, згортання, розгортання).
    Реліз Chrome 105
  • Стабілізовано можливість доступу до Media Source Extensions з виділених worker-ів (в контексті DedicatedWorker), що можна використовувати, наприклад, для підвищення продуктивності буферизованого відтворення мультимедійних даних через створення об'єкта MediaSource в окремому worker-і та трансляцію результатів його роботи в HTMLMediaElement в основному потоці .
  • В API Client Hints, який розвивається для заміни заголовка User-Agent і дозволяє вибірково віддавати дані про конкретні параметри браузера та системи (версія, платформа і т.д.) тільки після запиту на сервер, додана підтримка властивості Sec-CH-Viewport-Heigh, що дозволяє отримати відомості про висоту видимої області. Змінено формат розмітки для завдання у тезі «meta» параметрів Client Hints для зовнішніх ресурсів: Було: Стало:
  • Додано можливість створення глобальних обробників подій onbeforeinput (document.documentElement.onbeforeinput), за допомогою яких web-додатки можуть перевизначити поведінку при редагуванні тексту в блоках , та інших елементах із встановленим атрибутом «contenteditable», на стадії до зміни браузером вмісту елемента та дерева DOM.
  • Розширено можливості API Navigation, що дозволяє web-додаткам перехоплювати операції навігації у вікні, ініціювати перехід та аналізувати історію дій із програмою. Додані нові методи intercept() для перехоплення переходу та scroll() для прокручування задану позицію.
  • Додано статичний метод Response.json(), що дозволяє формувати тіло відповіді на основі даних із типом JSON.
  • Внесено покращення до інструментів для web-розробників. У відладчику при спрацюванні точки зупинки дозволено редагування верхньої в стеку функцій, без переривання сеансу налагодження. На панелі Recorder, за допомогою якої можна записувати, відтворювати та аналізувати дії користувача на сторінці, реалізована підтримка точок зупинки, покрокового відтворення та запису подій наведення миші.

    У панелі аналізу продуктивності додані метрики LCP (Largest Contentful Paint) для виявлення затримок при відображенні великих (помітних користувачеві) елементів у видимій області, таких як зображення, відео та блокові елементи. У панелі Elements реалізована позначка верхніх шарів, що виводяться поверх іншого вмісту, спеціальним значком. Для WebAssembly надано можливість завантаження налагоджувальних даних у форматі DWARF.

Крім нововведень та виправлення помилок у новій версії усунуто 24 вразливості. Багато вразливостей виявлено в результаті автоматизованого тестування інструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer та AFL. Критичних проблем, які дозволяють обійти всі рівні захисту браузера та виконати код у системі за межами sandbox-оточення, не виявлено. У рамках програми з виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 21 премію на суму 60500 доларів США (одна премія $10000, одна премія $9000, одна премія $7500, одна премія $7000, дві премії $5000, чотири премії $3000 $2000 та одна премія $1000). Розмір семи винагород поки не визначений.

Джерело: opennet.ru

Додати коментар або відгук