Реліз Chrome 95

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

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

  • Для користувачів Linux, Windows, macOS та ChromeOS запропоновано нову бічній панелі, що відображається праворуч від вмісту та активується при кліку на спеціальний значок в панелі з адресним рядком. На панелі відображається зведення із закладками та списком для читання. Зміна увімкнена не для всіх користувачів, для активації можна використовувати налаштування «chrome://flags/#side-panel».
    Реліз Chrome 95
  • Реалізовано висновок явного запиту повноважень збереження адрес, введених у web-формах, для подальшого використання у системі автозаповнення форм. При визначенні наявності адрес у формах користувачеві тепер відображається діалог, що дозволяє зберегти адресу, відредагувати, оновити раніше збережену адресу або відмовитися від збереження.
  • Видалено код підтримки протоколу FTP. У Chrome 88 підтримка FTP була відключена за замовчуванням, але залишили прапор для її повернення.
  • Припинено підтримку URL з іменами хостів, які закінчуються цифрою, але не відповідають IPv4 адресам. Наприклад, URL "http://127.1/", "http://foo.127.1/" та "http://127.0.0.0.1" тепер будуть вважатися некоректними.
  • Для WebAssembly реалізована можливість створення обробників винятків, які можуть перехопити виконання у разі виключення під час виконання певного коду. Підтримується як перехоплення відомих модулю WebAssembly винятків, і винятків у процесі виклику імпортованих функцій. Для перехоплення винятків модуль WebAssembly повинен бути зібраний компілятором, що підтримує виключення, таким як Emscripten.

    Зазначається, що обробка винятків на рівні WebAssembly дозволяє істотно скоротити розмір коду, що генерується, в порівнянні з обробкою винятків силами JavaScript. Наприклад, збирання оптимізатора Binaryen з обробкою винятків силами JavaScript призводить до збільшення коду на 43%, а силами WebAssembly – на 9%. Крім того, при використанні режиму оптимізації "-O3" код з обробкою винятків силами WebAssembly практично не відрізняється за продуктивністю від коду без обробників винятків, в той час як обробка виключень за допомогою JavaScript призводить до уповільнення виконання на 30%.

  • Заборонено спільне використання модулів WebAssembly між різними доменами (cross-origin) для обробки одного сайту.
  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації), додано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
    • Увімкнено урізання інформації в HTTP-заголовку User-Agent та JavaScript параметрах navigator.userAgent, navigator.appVersion та navigator.platform. У заголовку залишено лише відомості про назву браузера, значну версію браузера, платформу та тип пристрою (мобільний телефон, ПК, планшет). Для отримання додаткових даних, таких як точна версія та розширені дані про платформу, необхідно використовувати API User Agent Client Hints. Початок урізання User-Agent на системах звичайних користувачів намічено на випуск Chrome 102, який буде опубліковано через півроку.
    • Запропоновано можливість створення дескрипторів доступу (Access Handles) для API File System Access, що дозволяє web-додаткам читати та записувати дані безпосередньо у файли та каталоги на пристрої користувача. Для скорочення способів звернення веб-додатків до файлової системи компанія Google планує об'єднати API File System Access та Storage Foundation. Як підготовчий етап до такого об'єднання запропонована підтримка дескрипторів доступу, що доповнює методи роботи на основі файлових дескрипторів розширеними можливостями, такими як виставлення блокування запису іншими процесами та створення роздільних потоків на запис та читання, у тому числі з підтримкою читання та запису з worker-ів у синхронному режимі.
  • Стабілізований і запропонований за умовчанням API Secure Payment Confirmation з реалізацією нового розширення 'payment', що забезпечує додаткове підтвердження платіжної операції, що здійснюється. Сторона, що перевіряє, наприклад, банк, має можливість згенерувати відкритий ключ PublicKeyCredential, який може бути запрошений продавцем для додаткового безпечного підтвердження платежу через API Payment Request, використовуючи метод платежу 'secure-payment-confirmation'.
  • У callback-виклики, встановлені через конструктор PerformanceObserver, реалізована передача якості droppedEntriesCount, що дозволяє зрозуміти скільки метрик продуктивності сайту було відкинуто через те, що вони не вмістилися в даний буфер.
  • Доданий API EyeDropper, що дозволяє викликати інтерфейс, що надається браузером для визначення кольору довільних пікселів на екрані, що може застосовуватися, наприклад, у графічних редакторах, реалізованих у вигляді web-додатків. const eyeDropper = новий EyeDropper(); const result = await eyeDropper.open(); // result = {sRGBHex: '#160731'}
  • Додано функцію self.reportError(), що дозволяє скриптам виводити помилки на консоль, емулюючи виникнення неперехоплюваного виключення.
  • Доданий API URLPattern, для перевірки відповідності URL певному шаблону, що, наприклад може застосовуватися для аналізу посилань і для перенаправлення запитів на обробники в сервісному роботодавцю. const p = new URLPattern({ protocol: 'https', hostname: 'example.com', pathname: '/:folder/*/:fileName.jpg', });
  • Розширено API Intl.DisplayNames, через який можна отримати локалізовані назви мов, країн, валют, елементів дат тощо. У новій версії додані нові типи імен «calendar» та «dateTimeField», через які можна дізнатися локалізовані назви календаря та полів дати та часу (наприклад, назва місяців). Для типу «language» додано підтримку використання діалектів мов.
  • В API Intl.DateTimeFormat додано підтримку нових значень параметра timeZoneName: "shortGeneric" для виведення короткого ідентифікатора часового поясу (наприклад, "PT", "ET"), "longGeneric" - довгого ("Pacific Time", "Mountain Time"), "shortOffset" - з коротким зміщенням щодо GMT ("GMT+5") і "longOffset" з довгим зміщенням щодо GMT ("GMT+0500").
  • Оголошено застарілим API U2F (Cryptotoken), замість якого слід використовувати API Web Authentication. API U2F буде відключено за замовчуванням у випуску Chrome 98 і повністю видалено в Chrome 104.
  • Внесено покращення до інструментів для web-розробників. У панелі Styles спрощено коригування властивостей CSS, пов'язаних із розміром (height, padding тощо). У вкладці Issues надано можливість приховування окремих проблем. У web-консолі та панелях Sources та Properties покращено відображення властивостей (власні властивості тепер виділяються жирним шрифтом і показуються у верху списку).
    Реліз Chrome 95

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

Джерело: opennet.ru

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