Реліз Chrome 97

Компанія Google представила реліз web-браузера Chrome 97. Одночасно доступний стабільний випуск вільного проекту Chromium, який є основою Chrome. Браузер Chrome відрізняється використанням логотипів Google, наявністю системи надсилання повідомлень у разі краху, модулями для відтворення захищеного від копіювання відеоконтенту (DRM), системою автоматичної установки оновлень та передачі при пошуку RLZ-параметрів. Для тих, кому потрібно більше часу на оновлення, окремо підтримується гілка Extended Stable, що супроводжується 8 тижнів, у якій сформовано оновлення для минулого випуску Chrome 96. Наступний випуск Chrome 98 заплановано на 1 лютого.

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

  • Для частини користувачів у конфігураторі задіяний новий інтерфейс керування даними, що зберігаються на стороні браузера (chrome://settings/content/all). Ключовою відмінністю нового інтерфейсу є орієнтація на налаштування повноважень та очищення разом усіх Cookie сайту, без можливості перегляду деталізованої інформації про окремі Cookie та вибіркового видалення Cookie. На думку Google, доступ до управління окремими Cookie для звичайного користувача, що не знається на тонкощах web-розробки, може призвести до непередбачуваних порушень у роботі сайтів через необдуману зміну окремих параметрів, а також до випадкового відключення механізмів захисту конфіденційності, що активуються через Cookie. Для тих, кому необхідні маніпуляції з окремими Cookie, рекомендовано використовувати розділ управління сховищем в інструментах для web-розробників (Applocation/Storage/Cookie).
    Реліз Chrome 97
  • У блоці з інформацією про сайт реалізовано висновок короткого опису сайту (наприклад, описи з вікіпедії), якщо в налаштуваннях активовано режим оптимізації пошуку та навігації (опція Make searches and browsing better).
    Реліз Chrome 97
  • Поліпшено підтримку автоматичного заповнення полів у web-формах. Рекомендації з варіантами автозаповнення тепер виводяться з невеликим зрушенням і забезпечуються інформаційними піктограмами для зручнішого перегляду та наочного визначення зв'язку із полем, що заповнюється. Наприклад, піктограма профілю дає зрозуміти, що запропоноване автозаповнення зачіпає поля, пов'язані з адресою та контактною інформацією.
    Реліз Chrome 97
  • Забезпечено видалення з пам'яті обробників профілів користувача після закриття пов'язаних з ними вікон браузера. Раніше профілі залишалися в пам'яті і продовжували виконувати роботи, пов'язані з синхронізацією та виконанням фонових скриптів доповнень, що призводило до необґрунтованої витрати ресурсів на системах, в яких одночасно використовується кілька профілів (наприклад, гостьовий профіль та прив'язка до облікового запису Google). Крім того, забезпечено більш ретельне чищення даних, що залишаються в процесі роботи з профілем.
  • Покращена сторінка з налаштуваннями пошукових систем (Settings>Manage search engines). Відключена автоматична активація движків, інформація про які видається при відкритті сайту через сценарій OpenSearch - нові движки для обробки пошукових запитів з адресного рядка тепер потрібно активувати в налаштуваннях вручну (раніше автоматично активовані движки продовжать працювати без змін).
  • Починаючи з 17 січня до каталогу Chrome Web Store перестануть прийматися доповнення, що використовують другу версію маніфесту Chrome, але розробники раніше доданих додатків, як і раніше, зможуть публікувати оновлення.
  • Додано експериментальну підтримку специфікації WebTransport, що визначає протокол і супутній JavaScript API для відправки та прийому даних між браузером та сервером. Канал зв'язку організується поверх HTTP/3 з використанням транспорту протоколу QUIC. WebTransport може використовуватися замість механізму WebSockets, пропонуючи такі додаткові можливості, як організація передачі кількох потоків, односпрямовані потоки, доставка без урахування порядку відправки пакетів (out-of-order), надійний і ненадійний режими доставки. Крім того, WebTransport може застосовуватися замість механізму Server Push, від використання якого Chrome відмовилася компанія Google.
  • У JavaScript-об'єкти Array та TypedArrays додані методи findLast та findLastIndex, що дозволяють шукати елементи з виведенням результату щодо кінця масиву. [1,2,3,4].findLast((el) => el % 2 === 0) // → 4 (останній парний елемент)
  • Закриті (без атрибуту "open") HTML-елементи , тепер доступні для пошуку та посилань, і автоматично розкриваються під час пошуку по сторінці та навігації по фрагментах (ScrollToTextFragment).
  • Обмеження Content Security Policy (CSP) у заголовках відповіді сервера тепер застосовуються і до виділених worker-ам, які раніше трактувалися як окремі документи.
  • Забезпечено явний запит повноваження завантаження будь-яких субресурсів із внутрішньої мережі — перед зверненням до внутрішньої мережі або до localhost на сервер основного сайту відправляється запит CORS (Cross-Origin Resource Sharing) із заголовком «Access-Control-Request-Private-Network: true», що вимагає підтвердження операції через повернення заголовка "Access-Control-Allow-Private-Network: true".
  • Додано CSS-властивість font-synthesis, що дозволяє керувати можливістю синтезу браузером відсутніх накреслень шрифтів (oblique, bold і small-cap), відсутніх у вибраному сімействі шрифтів.
  • Для CSS-трансформацій функції perspective() реалізований параметр 'none', який обробляється як нескінченне значення при організації анімації.
  • У HTTP-заголовок Permissions-Policy (Feature Policy), застосовуваний для делегування повноважень та включення розширених можливостей, додано підтримку значення keyboard-map, що дозволяє використання API Keyboard. Реалізовано метод Keyboard.getLayoutMap(), що дозволяє визначити, яка клавіша натиснута з урахуванням різних розкладок клавіатури (наприклад, натиснута клавіша при російській розкладці або англійській).
  • Доданий метод HTMLScriptElement.supports(), який уніфікує визначення нових можливостей, доступних в елементі «script», наприклад, можна дізнатися про список підтримуваних значень для атрибуту «type».
  • Процес нормалізації нових рядків при надсиланні web-форм приведений до відповідності з браузерними двигунами Gecko і WebKit. Нормалізація символів перекладу рядка та повернення каретки (заміна /r та /n на \r\n) у Chrome тепер виконується на фінальній стадії, а не спочатку обробки відправки форми (тобто проміжні обробники, які використовують об'єкт FormData, будуть бачити дані як додав користувач, а не у нормалізованому вигляді).
  • Стандартизовано найменування імен властивостей для API Client Hints, що розвивається як заміна заголовка User-Agent і дозволяє вибірково віддавати дані про конкретні параметри браузера та системи (версія, платформа і т.д.) тільки після запиту сервером. Властивості тепер задаються з префіксом "sec-ch-", наприклад, sec-ch-dpr, sec-ch-width, sec-ch-viewport-width, sec-ch-device-memory, sec-ch-rtt, sec- ch-downlink та sec-ch-ect.
  • Застосовано другу стадію припинення підтримки API WebSQL, звернення до якого зі сторонніх скриптів тепер блокуватиметься. Надалі планується поступово повністю припинити підтримку WebSQL незалежно від контексту використання. Обробник WebSQL заснований на коді SQLite і міг використовуватися зловмисниками для експлуатації вразливостей SQLite.
  • Для платформи Windows увімкнено збірку з перевірками цілісності потоку виконання (CFG, Control Flow Guard), що блокує спроби підстановки коду в процес Chrome. Крім того, до мережевих сервісів, що виконуються в окремих процесах, тепер застосовується sandbox-ізоляція, що обмежує можливості коду даних процесів.
  • У Chrome для Android включено механізм динамічного оновлення лога виданих та відкликаних сертифікатів (Certificate Transparency), який раніше був активований у зборах для настільних систем.
  • Внесено покращення до інструментів для web-розробників. Реалізовано експериментальну підтримку синхронізації налаштувань DevTools між різними пристроями. Додано нову панель Recorder, за допомогою якої можна записувати, відтворювати та аналізувати дії користувача на сторінці.
    Реліз Chrome 97

    При виведенні помилок у web-консолі забезпечено відображення пов'язаних із проблемою номерів стовпців, що зручно для налагодження проблем у мініфікованому коді JavaScript. Оновлено список пристроїв, які можна симулювати, щоб оцінити відображення сторінки на мобільних пристроях. В інтерфейсі редагування HTML-блоків (Edit as HTML) додано підсвічування синтаксису та можливість автодоповнення введення.

    Реліз Chrome 97

Окрім нововведень та виправлення помилок у новій версії усунено 37 вразливостей. Багато вразливостей виявлено в результаті автоматизованого тестування інструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer та AFL. Однією з уразливостей надано статус критичної проблеми, що дозволяє обійти всі рівні захисту браузера та виконати код у системі, за межами sandbox-оточення. Деталі про критичну вразливість (CVE-2022-0096) поки не розкриваються, відомо тільки, що вона пов'язана зі зверненням до звільненої області пам'яті в коді для роботи з внутрішніми сховищами (API Storage).

У рамках програми виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 24 премії на суму 54 тисячі доларів США (три премії $10000, дві премії $5000, одна премія $4000, три премії $3000 і одна премія $1000). Розмір 14 винагород поки не визначений.

Джерело: opennet.ru

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