Реліз Chrome 85

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

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

  • Додана можливість згортання груп вкладок. Вкладки об'єднуються в групи за допомогою контекстного меню і можуть бути пов'язані з певним кольором та міткою. При натисканні на мітці групи пов'язані з нею вкладки тепер ховаються і замість них залишається одна мітка. Повторний клік на мітці прибирає приховування.

    Реліз Chrome 85

    Реліз Chrome 85

  • Реалізовано перегляд вмісту вкладок. При наведенні курсору на кнопку вкладки тепер відображається ескіз сторінки, що знаходиться у вкладці. Можливість поки що активована не для всіх користувачів і може бути включена за допомогою «chrome://flags/#tab-hover-cards».

    Реліз Chrome 85

  • Додано можливість збереження відредагованих PDF-форм, а також запропоновано налаштування «chrome://flags#pdf-viewer-update» та «chrome://flags/#pdf-two-up-view» для експериментів з новим інтерфейсом перегляду PDF-документів.
  • Додано можливість обміну посиланнями за допомогою QR-кодів. Для генерації QR-коду для поточної сторінки в адресний рядок вміщено спеціальну піктограму, яка з'являється при натисканні на адресний рядок. Можливість поки що активована не для всіх користувачів і може бути включена за допомогою «chrome://flags/#sharing-qr-code-generator».

    Реліз Chrome 85

  • На сторінці about:flags з'явилася опція "Omnibox UI Hide Steady-State URL Path, Query, and Ref" ("chrome://flags#omnibox-ui-hide-steady-state-url-path-query-and-ref- on-interaction»), що дозволяє вимкнути відображення елементів шляху та параметрів запиту в адресному рядку, залишивши видимим лише домен сайту. Приховування здійснюється на початку взаємодії зі сторінкою (під час завантаження і поки користувач не почав прокручування показується повний URL). Після приховування для перегляду повного URL-адреси пропонується клікнути на адресному рядку. Також доступна опція "chrome://flags#omnibox-ui-reveal-steady-state-url-path-query-and-ref-on-hover" для показу повного URL при наведенні курсору. Налаштування «Завжди показувати URL повністю» доступне в контекстному меню, скасовує приховування «https://», «www.», шляхів та параметрів. За умовчанням приховування поки що активовано лише для невеликого відсотка користувачів. Як мотив зміни вказується бажання захистити користувачів від фішингу, що маніпулює параметрами в URL.
    Реліз Chrome 85

  • У планшетному режимі для пристроїв із сенсорними екранами включена горизонтальна навігація по відкритих вкладках, коли крім заголовків на вкладках відображаються великі ескізи пов'язаних із вкладками сторінок. Вкладки можна переміщувати та перегруповувати екранними жестами. Відображення ескізів вмикається та вимикається спеціальною кнопкою, розташованою поруч із адресним рядком та аватаром користувача. Для вимкнення режиму передбачено налаштування «chrome://flags/#webui-tab-strip» та «chrome://flags/#scrollable-tabstrip».

    Реліз Chrome 85

  • У версії для Android при наборі в адресному рядку у списку пропонованих сторінок забезпечено виведення підказки для швидкого переходу до відкритих вкладок.
    Реліз Chrome 85

  • У версії для Android у контекстному меню посилань, що з'являється при тривалому утриманні дотику до посилання, додані мітки для виділення швидких сторінок. Швидкість визначається на основі метрик Основні веб-значення, що враховують зведені показники часу завантаження, чуйності та стабільності вмісту.
    Реліз Chrome 85

  • Забезпечено блокування небезпечного завантаження (без шифрування) виконуваних файлів та додано висновок попереджень при небезпечному завантаженні архівів (zip, iso тощо). У наступному випуску очікується блокування архівів та виведення попередження для документів (docx, pdf тощо). Надалі планується повністю припинити підтримку завантаження файлів без застосування шифрування. Блокування реалізовано, оскільки завантаження файлів без шифрування може використовуватися скоєння шкідливих дій шляхом заміни вмісту у процесі MITM-атак.
  • За замовчуванням включена підтримка формату зображень AVIF (AV1 Image Format), в якому задіяні технології внутрішньокадрового стиснення з формату кодування відео AV1. Контейнер для поширення стислих даних в AVIF повністю аналогічний HEIF. AVIF підтримує як зображення HDR (High Dynamic Range) і колірному просторі Wide-gamut, так і в стандартному динамічному діапазоні (SDR).
  • При компіляції збірок для Windows та macOS за промовчанням під час виклику компіляторів MSVC та Clang включені оптимізації на основі результатів профілювання коду (PGO - Profile-guided optimization), що дозволяють генерувати більш оптимальний код на основі аналізу особливостей виконання програми. Включення PGO дозволило прискорити завантаження вкладок приблизно на 10% (прискорення проходження тесту Speedometer 2.0 у macOS на 7.7%, а Windows на 11.4%). Чуйність інтерфейсу збільшилася в macOS на 3.9%, а в Windows на 7.3%.
  • Доданий експериментальний режим урізання активності фонових вкладок («Tab Throttling»), доступний через налаштування «chrome://flags##intensive-wake-up-throttling» (за замовчуванням увімкнеться Chrome 86). Увімкнення режиму передачі фонових вкладок (TaskQueues) зменшується до 1 дзвінка на хвилину, якщо сторінка знаходиться на тлі більше 5 хвилин.
  • Для всіх категорій користувачів активовано режим зниження споживання ресурсів CPU, коли вікно браузера не знаходиться в полі видимості користувача. Chrome перевіряє чи не перекривається вікно браузера іншими вікнами і виключає відображення пікселів в областях перекриття.
  • Посилена захист від завантаження змішаного мультимедійного контенту (коли на сторінці HTTPS завантажуються ресурси за протоколом http://). На сторінках, відкритих за HTTPS, реалізовано автоматичну заміну посилань «http://» на «https://» у блоках, пов'язаних із завантаженням зображень (раніше замінилися скрипти та iframe, звукові файли та відео). Якщо зображення недоступне за https, його завантаження блокується (вручну можна відзначити блокування через меню, доступне через символ замку в адресному рядку).
  • До TLS-сертифікатів, виписаних з 1 вересня 2020 року, буде застосовуватися нове обмеження на термін дії - час життя цих сертифікатів не зможе перевищувати 398 днів (13 місяців). Аналогічні обмеження застосовані у Firefox та Safari. Для сертифікатів, отриманих до 1 вересня, довіра буде збережена, але обмежена 825 днями (2.2 роки).
  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації), додано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
    • Запропоновано концепція порталів для забезпечення безшовної навігації між сайтами та вставки однієї сторінки в іншу для перегляду вмісту перед переходом. Запропоновано новий тег , що дозволяє відобразити іншу сторінку у формі вставки, при фокусі на яку, показана у вставці, сторінка буде переведена в стан основного документа, всередині якого допускається навігація. На відміну від iframe, вставка повністю ізольована від базової сторінки і обробляється як окремий документ.
    • API Fetch Upload Streaming, що дозволяє здійснювати fetch-запити із завантаженням вмісту у формі потоку ReadableStream (Раніше запит вимагав повної готовності вмісту, а тепер можна почати відправляти дані у формі потоку, не чекаючи повної готовності тіла запиту). Наприклад, веб-додаток може почати відправляти дані web-форми, як тільки користувач почав набирати текст у полі введення і коли набір буде завершено дані через fetch() вже будуть відправлені. У тому числі через новий API можна передавати звукові та відео дані, що генеруються на стороні клієнта.
    • Запропоновано API Декларативний Shadow DOM для створення нових кореневих гілок у Тіньовий DOMнаприклад, щоб відокремити імпортований сторонній стиль елемента та пов'язану з ним підвітку DOM від основного документа. Запропонований декларативний API дозволяє обійтися для відкріплення гілок DOM лише HTML без необхідності написання коду JavaScript.
    • Додано властивість RTCRtpEncodingParameters.adaptivePtime, що дозволяє відправнику RTC-потоків (real-time communication) керувати включенням адаптивного механізму відправлення пакетів.
    • Спрощено надання постійного сховища для вже встановлених програм PWA (Progressive Web Apps) та TWA (Trusted Web Activities)
      Додаток досить викликати метод navigator.storage.persist() і постійне сховище буде надано автоматично.

  • Реалізовано нове CSS-правило @ властивість, що дозволяє реєструвати власні CSS-властивості із успадкуванням, перевіркою типів та значеннями за умовчанням. Дія @property аналогічна до раніше доданого методу registerProperty().
  • Для систем з ОС Windows надано можливість використання методу getInstalledRelatedApps () визначення установки PWA-додатків. Раніше цей метод працював тільки на платформі Android.
  • Для настільних систем реалізовано підтримку ярликів додатків, що дозволяють надати швидкий доступ до затребуваних типових дій у програмі. Для створення ярликів достатньо додати елементи до маніфесту web-програми у форматі PWA (Progressive Web Apps). Раніше ярлики програм були доступні лише на платформі Android.
  • Додано CSS-властивість content-visibility для керування видимістю вмісту для оптимізації малювання. Під час встановлення значення 'auto' видимість визначається браузером на підставі близькості елемента до межі видимої області. Значення 'hidden' дозволяє повністю керувати відображенням елемента зі скриптів.
  • Додано CSS-властивість counter-set для встановлення певного значення для існуючих лічильників. Нова CSS-властивість доповнює раніше доступні властивості counter-reset і counter-increment, що застосовуються для створення нового лічильника або збільшення існуючого.
  • Додано CSS-властивість 'page', що відображає сторінку при виведенні на друк, а також властивість 'page-orientation' для отримання інформації про орієнтацію сторінки ('upright', 'rotate-left' та 'rotate-right'). Реалізовано підтримку звернення до сторінок за іменами, наприклад «@page foobar {}».
  • Реалізовано API Час події для вимірювання затримок події до та після завантаження сторінки.
  • У події leavepictureinpicture тепер передається посилання на pictureInPictureWindow доступу до вікна як Picture-in-Picture.
  • При заповненні заголовка Referrer за замовчуванням тепер застосовується правило strict-origin-when-cross-origin (надсилати Referrer обрізаним на інші хости, з яких завантажуються ресурси) замість no-referrer-when-downgrade (Referrer не заповнюється при поводженні з HTTPS на HTTP, але передається при завантаженні ресурсів по HTTPS) .
  • В API WebAuthn запропоновані нові методи getPublicKey(), getPublicKeyAlgorithm() та getAuthenticatorData().
  • У WebAssembly додано підтримка імпорту та експорту 64-розрядних цілих параметрів функції за допомогою JavaScript-типу BigInt.
  • У WebAssembly реалізовано розширення Multi-value, що дозволяє функції повертати більше значення.
  • Початковий компілятор Liftoff для WebAssembly задіяний для всіх архітектур і платформ, а не тільки для систем Intel. Ключова відмінність Liftoff від раніше застосовуваного компілятора TurboFan в тому, що Liftoff націлений на досягнення найбільшої швидкості початкової компіляції, ціною низької продуктивності коду, що генерується. Liftoff значно простіше TurboFan і генерує готовий для запуску машинний код дуже швидко, що дозволяє майже відразу розпочати його виконання, звівши затримку від компіляції до мінімуму. Для прискорення чорнового коду паралельно запускається фаза оптимізує перекомпіляції, яка виконується з використанням компілятора Turbofan. Після готовності оптимізованих машинних інструкцій початковий чорновий варіант замінюється на швидший код. У сумі, за рахунок зниження затримки перед початком виконання застосування Liftoff призвело до збільшення продуктивності тестового набору WebAssembly приблизно на 20%.
  • У JavaScript додані нові оператори логічного присвоєння: «??=», «&&=» та «||=». Оператор «x ??= y» виконує присвоєння, тільки якщо «x» набуває значення null або undefined. Оператор «x ||= y» виконує присвоєння, лише якщо «x» має значення FALSE, а «x &&= y» — TRUE.
  • Додано метод String.prototype.replaceAll(), який повертає новий рядок (початковий рядок не змінюється), в якому на підставі заданого шаблону виконані заміни всіх збігів. Шаблони можуть бути як простими масками, так і регулярними виразами.
  • Реалізовано метод Promise.any(), який повертає перший виконаний Promise зі списку.
  • Припинено дію маніфесту AppCache (технологія для організації роботи web-програми в offline-режимі). Як причина називається бажання позбутися одного з векторів для здійснення атак, пов'язаних з міжсайтовим скриптингом. Замість AppCache рекомендується використовувати API Кеш.
  • Заборонено передачу cookie у режимі SameSite=None для з'єднань без шифрування. Aтрибут SameSite вказується в заголовку Set-Cookie для керування передачею Cookie і за замовчуванням виставлено значення «SameSite=Lax», що обмежує відправку Cookie для міжсайтових субзапитів, таких як запит зображення або завантаження контенту через iframe з іншого сайту.
    Сайти можуть перевизначити режим SameSite, що застосовується за умовчанням, явно виставляючи при установці Cookie значення SameSite=None. Значення SameSite=None для Cookie тепер може бути виставлено лише у режимі Secure, який діє для з'єднань через HTTPS.

  • В інструментах для web-розробників додано підтримка редагування стилів, створених кадрами CSS-in-JS за допомогою API CSSOM (CSS Object Model), а також стилів, доданих із JavaScript. Панель аудиту оновлена ​​до випуску Маяк 6.0, в якому додано нові метрики Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) та Total Blocking Time (TBT).

    Реліз Chrome 85

  • На панелі оцінки продуктивності відображається інформація про кешування результатів компіляції JavaScript. У разі навігації користувача по сторінці в шкалі забезпечений показ часу відносного початку навігації, а не початку запису.

    Реліз Chrome 85

Окрім нововведень та виправлення помилок у новій версії усунено 20 вразливостей. Багато вразливостей виявлено в результаті автоматизованого тестування інструментами Адреса Sanitizer, MemorySanitizer, Цілісність потоку керування, LibFuzzer и AFL. Критичних проблем, які дозволяють обійти всі рівні захисту браузера та виконати код у системі за межами sandbox-оточення, не виявлено. У рамках програми виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 14 премій на суму 10000 доларів США (одна премія $5000, три премії $1000 і чотири премії $500). Розмір 6 винагород поки не визначений.

Джерело: opennet.ru

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