Реліз Chrome 94

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

Починаючи з випуску Chrome 94, технологія переведена на новий цикл підготовки релізів. Нові значні випуски відтепер публікуватимуться раз на 4 тижні, а не раз на 6 тижнів, що дозволить прискорити доведення нових можливостей до користувачів. Зазначається, що оптимізація процесу підготовки релізів та покращення системи тестування дозволяють формувати випуски частіше без шкоди якості. Для підприємств і для тих, кому необхідно більше часу на оновлення, раз на 8 тижнів окремо випускатиметься редакція Extended Stable, яка дозволить переходити на нові функціональні випуски не раз на 4 тижні, а раз на 8 тижнів.

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

  • Доданий режим HTTPS-First, який нагадує режим HTTPS Only, що раніше з'явився в Firefox. Якщо режим активовано в налаштуваннях при спробі відкриття ресурсу без шифрування по HTTP браузер спочатку спробує звернутися до сайту HTTPS і якщо спроба виявиться невдалою користувачеві буде показано попередження про відсутність підтримки HTTPS і запропоновано відкрити сайт без шифрування. У майбутньому Google розглядає можливість активації HTTPS-First за промовчанням для всіх користувачів, обмеження доступу до деяких можливостей web-платформи для сторінок, відкритих по HTTP, та додавання додаткових попереджень, які інформують користувачів про загрози, що виникають при зверненні до сайтів без шифрування. Режим включається в розділі «Конфіденційність та безпека» > «Безпека» > «Додаткові».
    Реліз Chrome 94
  • Для сторінок, відкритих без HTTPS, заборонено надсилання запитів (завантаження ресурсів) до локальних URL (наприклад, «http://router.local» та localhost) та внутрішніх діапазонів адрес (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0 .8/1.2.3.4 і т.п.). Виняток зроблено лише для сторінок, завантажених із серверів, які мають внутрішні IP. Наприклад, сторінка завантажена з сервера 192.168.0.1 не зможе звернутися до ресурсу, розміщеного на IP 127.0.0.1 або IP 192.168.1.1, а завантажена з сервера XNUMX — зможе. Зміна вводить додатковий рівень для захисту від експлуатації вразливостей в обробниках, що приймають запити на локальні IP, а також дозволить захиститися від атак типу DNS rebinding.
  • Додана функція Sharing Hub, що дозволяє швидко поділитися з іншими користувачами посиланням на поточну сторінку. Надається можливість генерації QR-коду з URL, збереження сторінки, відправки посилання на інший пристрій, прив'язаний до облікового запису користувача, та передачі посилання на інші сайти, такі як Facebook, WhatsUp, Twitter і VK. Можливість поки що доведена не до всіх користувачів. Для примусового увімкнення кнопки «Share» в меню та адресному рядку можна використовувати налаштування «chrome://flags/#sharing-hub-desktop-app-menu» та «chrome://flags/#sharing-hub-desktop-omnibox» .
    Реліз Chrome 94
  • Проведено реструктуризацію в інтерфейсі налаштування браузера. Кожна секція налаштувань тепер відображається на окремій сторінці, а не на одній спільній.
    Реліз Chrome 94
  • Реалізовано підтримку динамічного оновлення лога виданих та відкликаних сертифікатів (Certificate Transparency), який тепер оновлюватиметься без прив'язки до оновлення браузера.
  • Додана службова сторінка «chrome://whats-new» із оглядом видимих ​​користувачеві змін у новому випуску. Сторінка відображається автоматично після оновлення або доступна через кнопку «Що нового» (What's New) у меню Довідка (Help). В даний час на сторінці згадано пошук за вкладками, можливість розділення профілів та функція зміни кольору фону, які не специфічні для Chrome 94 і з'явилися у попередніх випусках. Показ сторінки поки не включений для всіх користувачів: для керування активацією можна використовувати налаштування «chrome://flags#chrome-whats-new-ui» та «chrome://flags#chrome-whats-new-in-main-menu- new-badge».
    Реліз Chrome 94
  • Оголошено застарілим звернення до API WebSQL із вмісту, що завантажується зі сторонніх сайтів (наприклад, через iframe). У Chrome 94 при спробі звернення до WebSQL зі сторонніх скриптів виводиться попередження, але з Chrome 97 подібні звернення блокуватимуться. У майбутньому планується поступово повністю припинити підтримку WebSQL незалежно від контексту використання. Обробник WebSQL заснований на коді SQLite і міг використовуватися зловмисниками для експлуатації вразливостей SQLite.
  • З міркувань безпеки та запобігання шкідливій активності почалося блокування використання застарілого протоколу MK (URL:MK), що колись застосовувався в Internet Explorer і дозволяв web-додатків витягувати інформацію зі стислих файлів.
  • Припинено підтримку синхронізації зі старими версіями Chrome (Chrome 48 і більше).
  • У HTTP-заголовок Permissions-Policy, призначений для включення певних можливостей та керування доступом до API, додано підтримку прапора «display-capture», що дозволяє керувати використанням на сторінці API Screen Capture (за замовчуванням можливість захоплення вмісту екрана із зовнішніх iframe блокується).
  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації), додано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
    • Доданий API WebGPU, що йде на зміну API WebGL і надає засоби для виконання операцій у GPU, таких як рендеринг та обчислення. Концептуально WebGPU близький до API Vulkan, Metal і Direct3D 12. Концептуально WebGPU відрізняється від WebGL приблизно так само, як графічний API Vulkan відрізняється від OpenGL, але при цьому не ґрунтується на конкретному графічному API, а являє собою універсальний прошарок, що використовує ті ж низькорівневі , що є в Vulkan, Metal та Direct3D 12.

      WebGPU надає додаткам на JavaScript засоби для низькорівневого контролю за організацією, обробкою та передачею команд до GPU, а також дозволяє керувати пов'язаними ресурсами, пам'яттю, буферами, об'єктами текстур та скомпільованими графічними шейдерами. Подібний підхід дозволяє досягти вищої продуктивності графічних додатків за рахунок зниження накладних витрат та підвищення ефективності роботи з GPU. API також дає можливість створювати для Web складні 3D-проекти, що працюють не гірше, ніж відокремлені програми, але не прив'язані до конкретних платформ.

    • Для відокремлених PWA-додатків реалізовано можливість реєстрації як обробників URL. Наприклад, програма music.example.com може зареєструвати себе як обробник URL https://*.music.example.com і всі переходи із зовнішніх додатків за даними посиланнями, наприклад, з месенджерів та поштових клієнтів, будуть призводити до відкриття цього PWA- додатків, а не нової вкладки у браузері.
    • Реалізована підтримка нового коду відповіді HTTP - 103, який може використовуватися для випередження заголовків. Код 103 дозволяє інформувати клієнта про зміст деяких HTTP-заголовків відразу після запиту, не чекаючи, поки сервер виконає всі пов'язані з запитом операції і почне віддачу контенту. Подібним чином можна повідомляти підказки про пов'язані з сторінкою, що віддається, елементах, які можуть бути попередньо завантажені (наприклад, можуть бути наведені посилання на використовувані на сторінці css і javascript). Отримавши інформацію про подібні ресурси браузер розпочне їх завантаження не чекаючи закінчення віддачі основної сторінки, що дозволяє скоротити загальний час обробки запиту.
  • Доданий API WebCodecs для маніпулювання мультимедійними потоками на низькому рівні, що доповнює високорівневі API HTML MediaElement, Media Source Extensions, WebAudio, MediaRecorder і WebRTC. Новий API може бути затребуваний у таких областях як стримінг ігор, застосування ефектів на стороні клієнта, перекодування потоків та підтримка нестандартних мультимедійних контейнерів. Замість реалізації окремих кодеків на JavaScript або WebAssembly, API WebCodecs надає доступ до готових компонентів висковання, вбудованих в браузер. Зокрема, в API WebCodecs надаються декодувальники та кодувальники звуку та відео, декодувальники зображень та функції для роботи з окремими кадрами відео на низькому рівні.
  • Стабілізовано API Insertable Streams, що дозволяє маніпулювати необробленими (raw) мультимедійними потоками, що передаються через API MediaStreamTrack, такими як дані з камери та мікрофона, результат захоплення екрану або проміжні дані декодування кодеком. Для представлення необроблених кадрів використовують інтерфейси WebCodec, після чого формується потік, аналогічний тому, що API WebRTC Insertable Streams генерує на основі RTCPeerConnections. З практичного боку новий API дозволяє реалізувати таку функціональність, як застосування методів машинного навчання для ідентифікації або анотування об'єктів у режимі реального часу або додавання ефектів, таких як вирізання фону, перед кодуванням або декодування кодеком.
  • Стабілізовано метод scheduler.postTask(), що дозволяє керувати плануванням виконання завдань (callback-дзвінків JavaScript) з різними рівнями пріоритету. Надається три рівні пріоритетів: 1- виконання в першу чергу, навіть якщо можуть бути блоковані операції користувача; 2 - допускаються видимі користувачеві зміни; 3 – виконання у фоновому режимі). Для зміни пріоритету та скасування завдань можна використовувати об'єкт TaskController.
  • Стабілізований і тепер поширюється за межами Origin Trials API Idle Detection для визначення неактивності користувача. API дозволяє визначати час, коли користувач не взаємодіє з клавіатурою/мишею, запущено зберігач екрану, екран заблоковано або робота виконується на іншому моніторі. Інформування програми про неактивність здійснюється через надсилання повідомлення після досягнення заданого порога неактивності.
  • Формалізовано процес керування кольором в об'єктах CanvasRenderingContext2D та ImageData та використання в них колірного простору sRGB. Надано можливість створення об'єктів CanvasRenderingContext2D та ImageData у колірних просторах, відмінних від sRGB, таких як Display P3, для використання розширених можливостей сучасних моніторів.
  • В API VirtualKeyboard додані методи та властивості для керування показом та прихованням віртуальної клавіатури, а також для отримання інформації про розмір показаної віртуальної клавіатури.
  • У JavaScript для класів надано можливість застосування статичних блоків ініціалізації для угруповання коду, що виконується один раз при обробці класу: class C { // Блок буде запущений при обробці самого класу static { console.log("C's static block"); } }
  • У CSS-властивості flex-basis і flex реалізовані ключові слова content, min-content, max-content і fit-content для більш гнучкого керування розміром основної області Flexbox.
  • Додано CSS-властивість scrollbar-gutter для управління резервуванням простору екрана під смугу прокручування. Наприклад, якщо не потрібно прокручувати вміст, можна розширити виведення та зайняти область смуги прокручування.
  • Доданий API Self Profiling з реалізацією системи профілювання, що дозволяє виміряти час виконання JavaScript на стороні користувача для налагодження проблем з продуктивністю JavaScript-коду, не вдаючись до ручних маніпуляцій в інтерфейсі для web-розробників.
  • Після видалення Flash-плагіну було вирішено повертати порожні значення у властивостях navigator.plugins і navigator.mimeTypes, але, як виявилося, деякі програми використовували їх для перевірки наявності плагінів для відображення файлів PDF. Оскільки в Chrome є вбудований переглядач PDF, відтепер властивості navigator.plugins і navigator.mimeTypes повертатимуть фіксований список стандартних плагінів і MIME-типів для перегляду PDF - PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer і WebKit built-in PDF».
  • Внесено покращення до інструментів для web-розробників. До списку симулювання екранів додано пристрої Nest Hub та Nest Hub Max. В інтерфейс інспектування мережної активності додана кнопка для інвертування фільтрів (наприклад, при встановленні фільтра «status-code: 404» можна швидко переглянути всі інші запити), а також надано можливість перегляду вихідних значень заголовків Set-Cookie (дозволяє оцінити наявність некоректних значень, що забираються) при нормалізації). Оголошена застарілою і буде видалена в одному з наступних випусків бічна панель веб-консолі. Додано експериментальну можливість приховування проблем у вкладці Issues. У налаштуваннях додано можливість вибору мови інтерфейсу.
    Реліз Chrome 94

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

Джерело: opennet.ru

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