Реліз Chrome 84

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

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

  • Вимкнено підтримка протоколів TLS 1.0 та TLS 1.1. Для звернення до сайтів захищеного каналу зв'язку сервер повинен надати підтримку як мінімум TLS 1.2, інакше браузер тепер виводитиме помилку. За даними Google, в даний час близько 0.5% завантажень web-сторінок продовжує здійснюватися з використанням застарілих версій TLS. Вимкнення здійснено відповідно до рекомендаціями IETF (Internet Engineering Task Force). Причиной отказа от TLS 1.0/1.1 является отсутствие поддержки современных шифров (например ECDHE и AEAD) и требование поддержки старых шифров, надёжность которых на современном этапе развития вычислительной техники поставлена ​​под сомнение (например, требуется поддержка TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, для проверки целостности и аутентификации используется MD5 и SHA-1). Налаштування, що дає можливість повернути TLS 1.0/1.1, буде збережено до січня 2021 року.
  • Забезпечено блокування небезпечного завантаження (без шифрування) виконуваних файлів та додано висновок попереджень при небезпечному завантаженні архівів. Надалі планується повністю припинити підтримку завантаження файлів без застосування шифрування. Блокування реалізовано, оскільки завантаження файлів без шифрування може використовуватися скоєння шкідливих дій шляхом заміни вмісту у процесі MITM-атак.
  • Додана початкова підтримка ідентифікатора Підказки для клієнта, що розвивається як альтернатива заголовку User-Agent. Механізм Client Hints пропонує як заміну User-Agent серію заголовків «Sec-CH-UA-*», що дозволяють організувати вибіркову віддачу даних про конкретні параметри браузера та системи (версія, платформа тощо) тільки після запиту сервером. Користувач отримує можливість визначити, які параметри допустимі для віддачі та вибірково надавати подібну інформацію власникам сайтів. При використанні Client Hints ідентифікатор не передається за замовчуванням без явного запиту, що унеможливлює проведення пасивної ідентифікації (за замовчуванням вказується лише назва браузера). Робота по уніфікації User-Agent відкладено до наступного року.
  • Продовжено активація
    більш жорсткого обмеження передачі Cookie між сайтами, яка була скасована внаслідок COVID-19. Для не-HTTPS запитів заборонено обробку сторонніх Cookie, що виставляються при зверненні до сайтів, відмінних від домену поточної сторінки. Подібні Cookie застосовуються для відстеження переміщень користувача між сайтами у коді рекламних мереж, віджетів соціальних мереж та систем web-аналітики.

    Нагадаємо, що для керування передачею Cookie застосовується вказаний у заголовку Set-Cookie атрибут SameSite, який за умовчанням буде виставлений у значення «SameSite=Lax», що обмежує відправлення Cookie для міжсайтових субзапитів, таких як запит зображення або завантаження контенту через iframe з іншого сайту. Сайти можуть перевизначити режим SameSite, що застосовується за умовчанням, явно виставляючи при установці Cookie значення SameSite=None. При цьому значення SameSite=None для Cookie може виставлятись лише в режимі Secure (діє для з'єднань через HTTPS). Зміна буде застосовуватися поетапно, спочатку для невеликого відсотка користувачів, потім поступово розширюючи охоплення.

  • Додано експериментальну реалізацію блокувальника ресурсомісткої реклами, яку можна активувати за допомогою "chrome://flags/#enable-heavy-ad-intervention". Блокувальник дозволяє автоматично відключати рекламні iframe-блоки після перевищення порогових значень трафіку та навантаження на CPU. Блокування спрацьовуватиме якщо в основному потоці витрачено більше 60 секунд процесорного часу в сумі або 15 секунд у 30-секундному інтервалі (споживає 50% ресурсів більше 30 секунд), а також коли завантажено більше 4 Мб даних по мережі.

    Блокування буде спрацьовувати тільки якщо до моменту перевищення лімітів користувач не взаємодіяв з рекламним блоком (наприклад, не клацав на нього), що з урахуванням обмеження на трафік дозволить блокувати автовідтворення об'ємних відеороликів у рекламі без активації відтворення користувачем. Пропоновані заходи позбавлять користувачів реклами з неефективною реалізацією коду або навмисною паразитною активністю (наприклад, що виконують майнінг). За статистикою Google, реклама, що підпадає під критерії блокування, складає всього 0.30% від усіх рекламних блоків, але при цьому подібні рекламні вставки споживають 28% ресурсів CPU і 27% трафіку від усього обсягу реклами.

  • Проведено роботу зі зниження споживання ресурсів CPU, коли вікно браузера не знаходиться в полі видимості користувача. Chrome тепер перевіряє, чи вікно браузера не перекривається іншими вікнами і виключає відображення пікселів в областях перекриття. Увімкнення нової функції буде здійснюватись поступово: вибірково для деяких користувачів оптимізація буде включена в Chrome 84, а для інших у Chrome 85.
  • За замовчуванням увімкнено захист від настирливих повідомленьнаприклад, спаму запитами на отримання push-повідомлень. Так як подібні запити переривають роботу користувача і відволікають увагу на дії в діалогах підтвердження, замість окремого діалогу в адресному рядку буде відображатися інформаційна підказка, що не вимагає дій від користувача, з попередженням про блокування запиту повноважень, яка автоматично згортається в індикатор із зображенням закреслено. При натисканні на індикатор можна активувати або відхилити повноваження в будь-який зручний момент.

    Реліз Chrome 84

  • Забезпечено запам'ятовування вибору користувача при відкритті обробників зовнішніх протоколів - користувач може вибрати "завжди дозволяти для цього сайту" для певного обробника і браузер запам'ятає це рішення у прив'язці до поточного сайту.
  • Додано захист від зміни налаштувань користувача без явної згоди. Якщо додаток змінить запропоновану за промовчанням пошукову систему або сторінку, що відображається для нової вкладки, браузер тепер виведе діалог із пропозицією підтвердити зазначену операцію або скасувати зміну.
  • Продовжено використання захисту від завантаження змішаного мультимедійного контенту (коли на HTTPS-сторінці завантажуються ресурси за протоколом http://). На сторінках, відкритих за HTTPS, тепер автоматично будуть замінюватися посилання "http://" на "https://" у блоках, пов'язаних із завантаженням зображень (раніше замінилися скрипти та iframe, автозаміна звукових та відео ресурсів очікується у наступному випуску). Якщо зображення недоступне за https, його завантаження блокується (вручну можна відзначити блокування через меню, доступне через символ замку в адресному рядку).
  • Додана підтримка API Web OTP (Розвивався як SMS Receiver API), що дозволяє організувати введення на web-сторінці одноразового пароля, після отримання SMS-повідомлення з кодом підтвердження, доставленого на Android-смартфон користувача, на якому запущено браузер. Підтвердження SMS, наприклад, може використовуватися для перевірки номера телефону, вказаного користувачем під час реєстрації. Якщо раніше користувач повинен був відкрити програму для роботи SMS, скопіювати з нього код у буфер обміну, повернутися до браузера і вставити цей код, то новий API дає можливість автоматизувати цей процес і звести його до одного дотику.
  • Розширено API Веб-анімація
    для керування відтворенням web-анімації. У новому випуску додано підтримку операцій композитингу, що дозволяють контролювати як комбінуються ефекти та надають нові обробники, що викликаються при настанні подій заміни вмісту. API Web Animations також тепер підтримує Promise для визначення послідовності показу анімації та кращого керування тим, як анімація взаємодіє з іншими можливостями програми.

  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації), додано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
    • API Cookie Store для доступу Service worker до HTTP Cookies, який є асинхронною альтернативою застосування document.cookie.
    • API Виявлення простою для визначення неактивності користувача, що дозволяє визначати час, коли користувач не взаємодіє з клавіатурою/мишею, запущено зберігач екрану, екран заблоковано або робота виконується на іншому моніторі. Інформування програми про неактивність здійснюється через надсилання повідомлення після досягнення заданого порога неактивності.
    • режим Origin Isolation, дозволяє розробнику використовувати повнішу ізоляцію обробки контенту в окремому процесі у прив'язці до джерела (origin — домен+порт+протокол), а не сайту, ціною припинення підтримки деяких застарілих можливостей, таких як синхронне виконання скриптів, що використовують document.domain, та виклик postMessage() для надсилання повідомлень екземплярам WebAssembly.Module. Іншими словами, Origin Isolation дозволяє організувати поділ з різних процесів на основі домену ресурсу, а не сайту зі всіма сторонніми включеннями на сторінках.
    • API WebAsembly SIMD для використання векторних SIMD-інструкцій у програмах у форматі WebAssembly. Для забезпечення платформонезалежності пропонуються новий 128-розрядний тип, який може представляти різні типи упакованих даних, та декілька базових векторних операцій для обробки упакованих даних. SIMD дозволяє підвищити продуктивність за рахунок розпаралелювання обробки даних і буде корисним при компіляції нативного коду WebAssembly. Для увімкнення підтримки SIMD можна використовувати налаштування «chrome://flags/#enable-webassembly-simd».
  • Стабілізований і тепер поширюється поза Origin Trials
    API Content Indexing, що надає метадані про контент, який раніше був прокешований web-додатками, що працюють у режимі Progressive Web Apps (PWS). Програма може зберігати на стороні браузера різні дані, включаючи зображення, відео та статті, а при зникненні мережного з'єднання використовувати їх за допомогою API Cache Storage та IndexedDB. Content Indexing API дає можливість додавати, знаходити та видаляти подібні ресурси. У браузері даний API вже використовується для переліку списку сторінок та мультимедійних даних, доступних для перегляду в offline.

  • Стабілізований варіант API Блокування пробудження на основі механізму Promise, що надає безпечніший спосіб управління відключенням автоблокування екрану та переведення пристроїв в енергозберігаючі режими.
  • У версії для платформи Android додано підтримка ярликів додатків, що дозволяють надати швидкий доступ до затребуваних типових дій у програмі. Для створення ярликів достатньо додати елементи до маніфесту web-програми у форматі PWA (Progressive Web Apps).
    Реліз Chrome 84

  • Для Web Worker дозволено використання API ReportingObserverдозволяє визначити обробник для генерації звіту, що викликається при зверненні до застарілих можливостей. Згенерований звіт на вибір користувача може бути збережений, відправлений на сервер або оброблений скриптом на JavaScript.
  • Оновлено API Змінити розмір спостерігача, що дозволяє підключити обробник, якому надсилатимуться повідомлення про зміну розміру зазначених елементів на сторінці. У ResizeObserverEntry додано три нові властивості: contentBoxSize, borderBoxSize та devicePixelContentBoxSize для отримання більш детальної інформації, що видається у формі масиву з об'єктів ResizeObserverSize.
  • Додано ключове слово «повернути» для скидання стилю елемента до значення за замовчуванням.
  • Позбавлені префіксу CSS-властивості "-webkit-appearance" і "-webkit-ruby-position", які тепер доступні як "зовнішній вигляд» та «ruby-position".
  • У JavaScript реалізована підтримка позначки методів та властивостей класу приватними, після чого доступ до них буде відкритий лише всередині класу (раніше приватними могли бути лише поля). Для позначення методів та властивостей приватним слід вказати перед ім'ям поля знак "#".
  • У JavaScript додано підтримка слабких посилань (weak reference) на об'єкти JavaScript, що дозволяють зберегти посилання на об'єкт, але не блокують видалення пов'язаного об'єкта збирачем сміття. Також додана підтримка фіналізаторів, що дають можливість визначення оброблювача, що викликається після складання сміття зазначеного об'єкта.
  • Прискорено запуск додатків на WebAssembly завдяки реалізації в початковому (baseline) компіляторі Liftoff атомарних інструкцій и пакетних операцій із пам'яттю. Покращено засоби для налагодження WebAssembly, істотно підвищено продуктивність налагодження при використанні точок зупинки (раніше при налагодженні використовувався інтерпретатор, а тепер компілятор Liftoff).
  • В інструментах для web-розробників pphttps://developers.google.com/web/updates/2020/05/devtools оновлено]] панель для аналізу продуктивності. Додана загальна інформація про метрику ТБТ (Total Blocking Time), що показує, як довго сторінка здається доступною, але насправді не доступна (тобто сторінка вже відмальована, але ще блокується виконання основного потоку і неможливе введення даних). Додано нову секцію Experience для аналізу метрики CLS (Cumulative Layout Shift), що відображає візуальну стабільність вмісту. У панелі інспектування CSS-стилів реалізовано перегляд зображень, вказаних через властивість «background-image».

Окрім нововведень та виправлення помилок у новій версії усунено 38 вразливостей. Багато вразливостей виявлено в результаті автоматизованого тестування інструментами Адреса Sanitizer, MemorySanitizer, Цілісність потоку керування, LibFuzzer и AFL. Одна проблема (CVE-2020-6510 переповнення буфера в обробнику фонових операцій fetch) позначена як критична, тобто. дозволяє обійти всі рівні захисту браузера та виконати код у системі за межами sandbox-оточення. У рамках програми виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 26 премій на суму 21500 доларів США (дві премії $5000, дві премії $3000, одна премія $2000, дві премії $1000 і три премії $500). Розмір 16 винагород поки не визначений.

Джерело: opennet.ru

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