Реліз Chrome 93

Компанія Google представила реліз web-браузера Chrome 93. Одночасно доступний стабільний випуск вільного проекту Chromium, який є основою Chrome. Браузер Chrome відрізняється використанням логотипів Google, наявністю системи надсилання повідомлень у разі краху, модулями для відтворення захищеного відеоконтенту (DRM), системою автоматичної установки оновлень та передачею під час пошуку RLZ-параметрів. Наступний випуск Chrome 94 заплановано на 21 вересня (розробка переведена на 4-тижневий цикл формування релізів).

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

  • Проведено модернізацію оформлення блоку з інформацією про сторінку (page info), в якому реалізовано підтримку вкладених блоків, а списки з правами доступу, що випадають, замінені на перемикачі. У списках забезпечено виведення найважливішої інформації насамперед. Зміна увімкнена не для всіх користувачів, для активації можна використовувати налаштування «chrome://flags/#page-info-version-2-desktop».
    Реліз Chrome 93
  • Для невеликого відсотка користувачів як експеримент індикатор захищеного з'єднання в адресному рядку замінений на більш нейтральний символ, що не викликає подвійного трактування (замок замінений на знак «V»). Для з'єднань, встановлених без шифрування, продовжує відображатись індикатор «не захищено». Як причина заміни індикатора згадується те, що багато користувачів асоціюють індикатор замку з тим, що вмісту сайту можна довіряти, а не сприймають його як ознаку шифрування з'єднання. Судячи з опитування Google лише 11% користувачів розуміють сенс піктограми із замком.
    Реліз Chrome 93
  • У списку нещодавно закритих вкладок забезпечено відображення вмісту закритих груп вкладок (раніше у списку просто показувалася назва групи без деталізації вмісту) з можливістю разом повернути як всю групу, так і окремі вкладки групи. Можливість активована не для всіх користувачів, тому для включення може знадобитися зміна налаштування «chrome://flags/#tab-restore-sub-menus».
    Реліз Chrome 93
  • Для підприємств реалізовані нові налаштування DefaultJavaScriptJitSetting, JavaScriptJitAllowedForSites і JavaScriptJitBlockedForSites, що дозволяють керувати режимом JIT-less, що відключає застосування JIT-компіляції при виконанні JavaScript (використовується тільки інтерпретатор Ignition) і забороняє виділення виконання виконуваної пам'яті. Відключення JIT може бути корисним для підвищення безпеки роботи з потенційно небезпечними web-додатками ціною зниження продуктивності JavaScript приблизно на 17%. Примітно, що компанія Microsoft пішла ще далі і реалізувала в браузері Edge експериментальний режим Super Duper Secure, що дозволяє користувачу відключити JIT і активувати несумісні з JIT апаратні механізми захисту CET (Controlflow-Enforcement Technology), ACG (Arbitrary Code Guard) Control Flow Guard) для процесів, що виконують обробку веб-контенту. Якщо експеримент виявиться вдалим, можна очікувати перенесення їх у основний склад Chrome.
  • На сторінці нової вкладки забезпечено виведення списку найбільш популярних документів, збережених у Google Drive. Вміст списку відповідає розділу Priority у drive.google.com. Для керування показом вмісту Google Drive можна використовувати налаштування «chrome://flags/#ntp-modules» та «chrome://flags/#ntp-drive-module».
    Реліз Chrome 93
  • Для сторінки відкриття нової вкладки запропоновані нові інформаційні карти, які допомагають знайти нещодавно перегляданий контент і пов'язану з ним інформацію. Карти покликані спростити продовження роботи з інформацією, перегляд якої було перервано, наприклад, карти допоможуть знайти рецепт страви, який нещодавно було знайдено в мережі, але втрачено після закриття сторінки, або продовжити вибір покупок у магазинах. Як експеримент користувачам запропоновано дві нові карти: «Рецепти» (chrome://flags/#ntp-recipe-tasks-module) для пошуку кулінарних рецептів та показу нещодавно переглянутих рецептів; «Покупки» (chrome://flags/#ntp-chrome-cart-module) для нагадування про вибрані в інтернет-магазинах товари.
  • У версію для платформи Android додано опціональну підтримку панелі безперервного пошуку (chrome://flags/#continuous-search), що дозволяє тримати на увазі останні результати пошуку в Google (панель продовжує показувати результати після переходу на інші сторінки).
    Реліз Chrome 93
  • До версії для платформи Android додано експериментальний режим обміну цитатами (chrome://flags/#webnotes-stylize), що дозволяє зберегти виділений фрагмент сторінки у формі цитати та поділитися ним з іншими користувачами.
  • При публікації нових доповнень або оновлень версій у Chrome Web Store тепер обов'язково застосування двофакторної верифікації розробника.
  • Для користувачів Google Account надано опцію для збереження інформації про платежі у своєму обліковому записі в Google.
  • У режимі інкогніто, у разі активації опції очищення даних навігації, реалізовано новий діалог підтвердження операції, який пояснює, що чищення даних призведе до закриття вікна та завершення всіх сеансів у режимі інкогніто.
  • Через виявлені несумісності з прошивками деяких пристроїв тимчасово відключено підтримку доданого в Chrome 91 нового методу узгодження ключів, стійкого до підбору на квантових комп'ютерах, заснованого на використанні в TLSv1.3 розширення CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2), комбіні класичний механізм обміну ключами X25519 із схемою HRSS, заснованої на алгоритмі NTRU Prime, розробленої для постквантових криптосистем.
  • До заборонених мережних портів додано порти 989 (ftps-data) і 990 (ftps) з метою блокування атаки ALPACA. Раніше з метою захисту від атаки NAT slipstreaming вже було заблоковано порти 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061, 6566 та 10080.
  • У TLS припинено підтримку шифрів з урахуванням алгоритму 3DES. Зокрема видалено набір шифрів TLS_RSA_WITH_3DES_EDE_CBC_SHA, схильний до атаки Sweet32.
  • Припинено підтримку дистрибутива Ubuntu 16.04.
  • Надається можливість використання API WebOTP між різними пристроями, пов'язаними через загальний обліковий запис у Google. WebOTP дозволяє web-додатку читати одноразові коди підтвердження, що надсилаються через SMS. Запропонована зміна дозволяє отримати код підтвердження на мобільному пристрої з Chrome для Android, а застосувати його на настільній системі.
  • Розширено API User-Agent Client Hints, що розвивається як заміна заголовка User-Agent. User-Agent Client Hints дозволяє організувати вибіркову віддачу даних про конкретні параметри браузера та системи (версія, платформа тощо) лише після запиту сервером. Користувач, у свою чергу, може визначити, яку інформацію можна надати власникам сайтів. У разі використання User-Agent Client Hints ідентифікатор браузера не передається без явного запиту, а за замовчуванням вказуються лише базові параметри, що ускладнює проведення пасивної ідентифікації.

    У новій версії реалізовано підтримку параметра Sec-CH-UA-Bitness для повернення даних про розрядність платформи, що може використовуватися для віддачі оптимізованих бінарних файлів. За промовчанням забезпечено відправлення параметра Sec-CH-UA-Platform із загальними даними про платформу. У значенні UADataValues, що видається при виклику getHighEntropyValues(), за умовчанням реалізована віддача узагальнених параметрів, якщо неможливо повернути деталізований варіант. До об'єкту NavigatorUAData додано метод toJSON, що дозволяє використовувати конструкції виду JSON.stringify(navigator.userAgentData).

  • Стабілізовано та запропоновано за умовчанням можливість пакування ресурсів у пакети у форматі Web Bundle, що підходять для організації більш ефективного завантаження великої кількості супутніх файлів (CSS-стилі, JavaScript, зображення, iframe). Серед недоліків у наявній підтримці пакетів для файлів JavaScript (webpack), які намагаються усунути у Web Bundle: у HTTP-кеші може осідати сам пакет, але не його складові; компіляція та виконання може розпочатися лише після повного завантаження пакета; додаткові ресурси, такі як CSS та зображення, повинні кодуватися у формі JavaScript-рядків, що призводить до збільшення розміру та виконання ще однієї стадії аналізу.
  • Включено API WebXR Plane Detection, що надає відомості про плоскі поверхні у віртуальному 3D-оточенні. Зазначений API дає можливість обійтися без ресурсомісткої обробки даних, отриманих через виклик MediaDevices.getUserMedia(), з використанням власних реалізацій алгоритмів машинного зору. Нагадаємо, що API WebXR дозволяє уніфікувати роботу з різними класами пристроїв віртуальної реальності від стаціонарних 3D-шоломів до рішень на базі мобільних пристроїв.
  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації), додано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
    • Запропоновано API Multi-Screen Window Placement, що дозволяє розміщувати вікна на будь-якому дисплеї, підключеному до поточної системи, а також зберігати позицію вікна та за необхідності розкривати вікно на весь екран. Наприклад, за допомогою зазначеного API web-додаток для показу презентації може організувати виведення слайдів на одному екрані, а показувати примітку для доповідача на іншому.
    • У заголовок Cross-Origin-Embedder-Policy, який керує режимом ізоляції Cross-Origin і дозволяє визначати правила безпечного використання на сторінці привілейованих операцій, додана підтримка параметра «credentialless» для відключення передачі інформації, пов'язаної з обліковими даними, такої як Cookie та клієнтські сертифікати.
    • Для відокремлено встановлюваних web-додатків (PWA, Progressive Web Apps), що керують відображенням вмісту вікна та займаються обробкою введення, наданий оверлей з елементами керування вікном, такими як область із заголовком та кнопки розкриття/згортання вікна. Оверлей розширює доступну для зміни область на вікно і дозволяє додавати свої елементи в область заголовка.
      Реліз Chrome 93
    • Додано можливість створення PWA-додатків, які можуть використовуватися як обробники URL. Наприклад, програма music.example.com може зареєструвати себе як обробник URL https://*.music.example.com і всі переходи із зовнішніх додатків за даними посиланнями, наприклад, з месенджерів та поштових клієнтів, будуть призводити до відкриття цього PWA- додатків, а не нової вкладки у браузері.
  • Надано можливість завантаження CSS-файлів за допомогою виразу «import» за аналогією із завантаженням модулів JavaScript, що зручно при створенні власних елементів і дозволяє обійтися без призначення стилів кодом на JavaScript. import sheet from './styles.css' assert { type: 'css' }; document.adoptedStyleSheets = [sheet]; shadowRoot.adoptedStyleSheets = [sheet];
  • Надано новий статичний метод AbortSignal.abort(), що повертає об'єкт AbortSignal, для якого вже виставлено параметр aborted. Замість кількох рядків коду для створення об'єкта AbortSignal може aborted тепер можна обійтися одним рядком «return AbortSignal.abort()».
  • В елемент Flexbox додано підтримку ключових слів start, end, self-start, self-end, left і right, що доповнюють ключові слова center, flex-start і flex-end засобами для спрощеного вирівнювання позиції flex-елементів.
  • У конструкторі Error() реалізовано нове необов'язкове властивість «cause», з якого можна легко пов'язувати помилки між собою. const parentError = новий Error('parent'); const error = new Error('parent', { cause: parentError}); console.log(error.cause === parentError); // → true
  • У властивості HTMLMediaElement.controlsList додана підтримка режиму noplaybackrate, що дозволяє вимкнути елементи інтерфейсу, що надається в браузері, для зміни швидкості відтворення мультимедійного контенту.
  • Доданий заголовок Sec-CH-Prefers-Color-Scheme, що дозволяє на етапі відправки запиту передати дані про колірну схему, що використовується в медіазапитах «prefers-color-scheme», що дозволить сайту оптимізувати завантаження пов'язаних з обраною схемою CSS і уникнути видимих з інших схем.
  • Додано властивість Object.hasOwn, що є спрощеним варіантом Object.prototype.hasOwnProperty, реалізований у формі статичного методу. Object.hasOwn({ prop: 42 }, 'prop') // → true
  • JIT-компілятор Sparkplug, призначений для дуже швидкого виконання грубої компіляції, доданий режим пакетного виконання операцій, що дозволяє знизити накладні витрати від перемикання сторінок пам'яті між режимом запису і виконання. Sparkplug тепер компілює відразу кілька функцій і викликає mprotect один раз для зміни прав доступу всієї групи. Запропонований режим значно скорочує час компіляції (до 44%) без негативного впливу на продуктивність JavaScript.
    Реліз Chrome 93
  • У версії для Android відключені вбудовані в двигун V8 механізми захисту від атак по стороннім каналам, таким як Spectre, які визнані не настільки ефективними, як ізоляція сайтів в окремих процесах. У настільній версії зазначені механізми було відключено ще у випуску Chrome 70. Відключення зайвих перевірок дозволило підвищити продуктивність на 2-15%.
    Реліз Chrome 93
  • Внесено покращення до інструментів для web-розробників. У режимі інспектування таблиць стилів надано можливість редагування запитів, сформований за допомогою виразу @container. У режимі інспектування мережі реалізовано перегляд ресурсів у форматі Web bundle. У веб-консолі в контекстне меню додані опції для копіювання рядків у формі літералів JavaScript або JSON. Спрощено налагодження помилок, пов'язаних із CORS (Cross-Origin Resource Sharing).
    Реліз Chrome 93

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

Джерело: opennet.ru

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