Реліз Chrome 101

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

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

  • Додано функцію Side Search, що дає змогу переглянути результати пошуку у бічній панелі одночасно з переглядом іншої сторінки (в одному вікні одночасно можна бачити як вміст сторінки, так і результат звернення до пошукової системи). Після переходу на якийсь сайт зі сторінки з результатами пошуку в Google перед полем введення в адресному рядку з'являється піктограма з літерою «G», при натисканні на яку відкривається бічна панель з результатами попереднього пошуку. За замовчуванням функція включена не на всіх системах, для включення можна використовувати налаштування chrome://flags/#side-search.
    Реліз Chrome 101
  • В адресному рядку Omnibox реалізовано попереджувальне малювання (prerendering) вмісту рекомендацій, запропонованих у міру введення. Раніше для прискорення переходу з адресного рядка найімовірніші для переходу рекомендації підвантажувалися не чекаючи натискання користувача, використовуючи виклик Prefetch. Тепер, крім завантаження, вони ще й малюються в буфері (у тому числі виконуються скрипти та формується дерево DOM), що дозволяє забезпечити миттєве відображення рекомендацій після натискання. Для керування попереджувальним малюнком запропоновані налаштування "chrome://flags/#enable-prerender2", "chrome://flags/#omnibox-trigger-for-prerender2" та "chrome://flags/#search-suggestion-for- prerender2».
  • Урізана інформація в HTTP-заголовку User-Agent та JavaScript параметрах navigator.userAgent, navigator.appVersion та navigator.platform. У заголовку залишено лише відомості про назву браузера, значну версію браузера (складові версії MINOR.BUILD.PATCH замінені на 0.0.0), платформу та тип пристрою (мобільний телефон, ПК, планшет). Для отримання додаткових даних, таких як точна версія та розширені дані про платформу, необхідно використовувати API User Agent Client Hints. Для сайтів, яким нової інформації недостатньо і які ще не готові перейти на User Agent Client Hints, до травня 2023 надано можливість повернення повного User-Agent.
  • Змінено поведінку функції setTimeout під час передачі нульового аргументу, що визначає затримку виклику. Починаючи з Chrome 101, при вказівці «setTimeout(…, 0)» код буде викликатися відразу, без затримки в 1мс, як того вимагає специфікація. Для повторних вкладених викликів setTimeout застосовується затримка 4 мс.
  • У версії для платформи Android реалізовано підтримку запиту повноважень на виведення повідомлень (в Android 13 для відображення повідомлень додаток повинен мати повноваження «POST_NOTIFICATIONS», без якого відправлення повідомлень блокуватиметься). При запуску Chrome в оточенні Android 13 браузер тепер виводитиме запит отримання повноважень на виведення повідомлень.
  • Видалено можливість використання API WebSQL у сторонніх скриптах. За замовчуванням блокування WebSQL у скриптах, завантажених не з поточного сайту, було включено в Chrome 97, але було залишено опцію для відключення цієї поведінки. У Chrome 101 ця опція видалена. Надалі планується поступово повністю припинити підтримку WebSQL незалежно від контексту використання. Замість WebSQL рекомендується використовувати API Web Storage та Indexed Database. Обробник WebSQL заснований на коді SQLite і міг використовуватися зловмисниками для експлуатації вразливостей SQLite.
  • Видалено імена політик для підприємств (chrome://policy), що містять неінклюзивні терміни. Починаючи з Chrome 86, для зазначених політик запропоновані заміни, в яких використовується інклюзивна термінологія. Проведено чищення таких термінів, як «whitelist», «blacklist», «native» та «master». Наприклад, політика URLBlacklist перейменована на URLBlocklist, AutoplayWhitelist на AutoplayAllowlist, а NativePrinters на Printers.
  • У режимі Origin Trials (експериментальні можливості, що вимагають окремої активації) поки тільки в збірках для платформи Android почалося тестування API Federated Credential Management (FedCM), що дозволяє створювати об'єднані сервіси ідентифікації, що забезпечують збереження конфіденційності та працюють без механізмів міжсайтового відстеження, таких . Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
  • Стабілізований і запропонований всім бажаючим механізм Priority Hints, що дозволяє задати важливість того чи іншого ресурсу, що завантажується через вказівку додаткового атрибуту «importance» в тегах, таких як iframe, img і link. Атрибут може приймати значення "auto" та "low", and "high", які впливають на порядок завантаження браузером зовнішніх ресурсів.
  • Додано властивість AudioContext.outputLatency, через яку можна дізнатися відомості про прогнозовану затримку перед виведенням звуку (затримка між запитом звуку та початком обробки отриманих даних пристроєм виведення звуку).
  • Додано CSS-властивість font-palette і правило @font-palette-values, що дозволяє вибрати палітру з кольорового шрифту або визначити власну палітру. Наприклад, зазначена можливість може використовуватися для приведення кольорових символьних шрифтів або emoji до кольору оформлення вмісту або включення темного або світлого режиму для шрифту.
  • Додана CSS-функція hwb(), що надає альтернативний метод вказівки кольорів sRGB у форматі HWB (Hue, Whiteness, Blackness), схожому на HSL (Hue, Saturation, Lightness), але більш простим для людського сприйняття.
  • У методі window.open() вказівка ​​властивості popup у рядку windowFeatures, без присвоєння значення (тобто коли просто вказаний popup, а не popup=true) тепер обробляється як увімкнення відкриття мініатюрного спливаючого вікна (аналог «popup=true») замість присвоєння за умовчанням значення «false», що було нелогічно і вводило розробників в оману.
  • В API MediaCapabilities, що надає інформацію про можливості пристрою та браузера декодування мультимедійного контенту (підтримувані кодеки, профілі, бітрейти та дозволи), додана підтримка потоків WebRTC.
  • Запропоновано третю версію API Secure Payment Confirmation, що надає інструменти для додаткового підтвердження здійснюваної платіжної операції. У новій версії додано підтримку ідентифікаторів, що вимагають введення даних, визначення піктограми для індикації збою перевірки, а також опціональної властивості payeeName.
  • В API USBDevice додано метод forget() для відкликання раніше наданих користувачем повноважень доступу до USB-пристрою. Крім того, екземпляри USBConfiguration, USBInterface, USBAlternateInterface і USBEndpoint тепер рівні за суворого порівняння («===», вказують на один об'єкт), якщо вони повернуті для одного і того ж об'єкта USBDevice.
  • Внесено покращення до інструментів для web-розробників. Надано можливість імпорту та експорту у форматі JSON записаних дій користувача (приклад). У web-консолі та інтерфейсі перегляду коду покращено обчислення та відображення приватних властивостей. Додано підтримку роботи з колірною моделлю HWB. На панелі CSS додано можливість перегляду каскадних шарів, що задаються за допомогою правила @layer.
    Реліз Chrome 101

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

Джерело: opennet.ru

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