Реліз Chrome 77

Google випустила нову версію інтернет-браузера Chrome Одночасно доступний новий реліз open-source проекту Chromium – основи Chrome. Наступний реліз заплановано на 22 жовтня.

В новой версії:

  • Припинено окрему позначку сайтів із сертифікатами рівня EV (Extended Validation). Інформація про застосування EV-сертифікатів тепер відображається лише у випадаючому меню, що відображається при натисканні на піктограму захищеного з'єднання. Назва перевіреної центром компанії, до якої прив'язаний EV-сертифікат, в адресному рядку більше відображатися не буде;
  • Посилено ізоляцію обробників сайтів. Додано захист для міжсайтових даних, таких як Cookie та HTTP-ресурси, що отримуються зі сторонніх сайтів, контрольованих зловмисниками. Ізоляція працює навіть якщо атакуючий виявить помилку в процесі, що відповідає за малювання, та спробує виконати код у його контексті;
  • Додана нова сторінка з привітанням нових користувачів (chrome://welcome/), що виводиться замість штатного інтерфейсу відкриття нової вкладки після першого запуску Chrome. Сторінка дозволяє додати в закладки популярні сервіси Google (GMail, YouTube, Maps, News та Translate), прикріпити ярлики на сторінку нової вкладки, підключитися до облікового запису Google для увімкнення Chrome Sync та призначити виклик Chrome за умовчанням у системі.
  • У меню сторінки нової вкладки, що відображається у верхньому правому кутку, додано можливість завантаження фонового зображення, а також з'явилися опції для вибору теми оформлення та налаштування блоку з ярликами для швидкого переходу (найчастіше відвідувані сайти, ручний вибір користувача та приховування блоків з ярликами). Налаштування поки що позиціонуються як експериментальні та вимагають активації через прапори «chrome://flags/#ntp-customization-menu-v2» та «chrome://flags/#chrome-colors-custom-color-picker»;
  • Забезпечено анімацію піктограми сайту в заголовку вкладки, що сигналізує про те, що сторінка знаходиться в процесі завантаження;
    Додано прапор "-guest", що дозволяє запустити Chrome з командного рядка в режимі гостьового входу (без підключення до облікового запису Google, без запису активності в браузері на диск і без збереження сеансу);
  • Продовжено розпочате у минулому випуску чищення прапорів у chrome://flags. Замість прапорів для налаштування поведінки браузера рекомендується використовувати набори правил;
  • У контекстному меню сторінки, вкладки та адресного рядка додана кнопка «Send to your devices», яка дозволяє надіслати посилання на інший пристрій за допомогою Chrome Sync. Після вибору пристрою призначення, прив'язаного до того ж облікового запису, та надсилання посилання, на цільовому пристрої буде виведено повідомлення для відкриття посилання;
  • У версії для Android повністю перероблена сторінка зі списком завантажених файлів, в якій замість меню з розділами контенту додані кнопки для фільтрації загального списку за типом контенту, а ескізи завантажених зображень тепер показуються на всю ширину екрана;
  • Додані нові метрики для оцінки швидкості завантаження та відтворення контенту в браузері, що дозволяють веб-розробнику визначити, як швидко основний вміст сторінки стає доступним для користувача. Запропоновані раніше засоби контролю малювання дозволяли судити лише про факт початку відмальовування, але не про готовність сторінки в цілому. У Chrome 77 запропонований новий API Largest Contentful Paint, що дозволяє дізнатися час відтворення великих (помітних користувачеві) елементів у видимій області, таких як зображення, відео, блокові елементи та фон сторінки;
  • Доданий API PerformanceEventTiming, що надає відомості про затримку перед першою взаємодією користувача (наприклад, натискання клавіші на клавіатурі або миші, клік або переміщення вказівника). Новий API є підмножиною API EventTiming, що дозволяє отримати додаткові відомості для виміру та оптимізації чуйності інтерфейсу;
  • Додано нові можливості для форм, що спрощують використання власних нестандартних елементів керування формами (нестандартні поля введення, кнопки тощо). Нова подія «formdata» дає можливість використовувати обробники JavaScript для додавання даних у форму на етапі її відправки без необхідності зберігати дані в прихованих елементах input.
    Другим нововведенням є підтримка створення власних елементів, асоційованих з формою та діючих як вбудовані елементи управління формами, у тому числі таких, що підтримують такі можливості, як включення перевірки коректності введення та ініціювання відправлення даних на сервер. Для позначення елемента як компонента інтерфейсу форми запропоновано властивість формисумісної, а для доступу до додаткових методів управління формою, таким як setFormValue() і setValidity(), додано виклик attachInternals();
  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації) додано новий API Contact Picker, що дозволяє користувачеві вибрати записи з адресної книги та передати певні деталі про них на сайт. При запиті визначається перелік властивостей, які потрібно отримати (наприклад, ПІБ, email, номер телефону). Дані властивості явно відображаються користувачеві, який приймає кінцеве рішення надсилати дані чи ні. API може бути використаний, наприклад, у поштовому веб-клієнті для вибору одержувачів для надісланого листа, у веб-додатку з функцією VoIP для ініціювання дзвінка за певним номером або в соціальній мережі для пошуку вже зареєстрованих друзів.
    Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту;
  • Для форм реалізований атрибут enterkeyhint, що дозволяє визначити поведінку при натисканні клавіші Enter на віртуальній клавіатурі. Атрибут може приймати значення enter, done, go, next, previous, search та send;
  • Додано правило document-domain, яке керує доступом до властивості «document.domain». За промовчанням доступ дозволено, але якщо його заборонити спроба зміни значення «document.domain» призводитиме до виведення помилки;
  • В API Performance додано виклик LayoutShift, який дозволяє відстежувати зміну позиції елементів DOM на екрані.
    Розмір HTTP-заголовка "Referer" обмежений 4 КБ, при перевищенні даного значення вміст урізається до імені домену;
  • Аргумент url у функції registerProtocolHandler() обмежений застосуванням лише схем http:// і https:// і тепер не допускає схеми «data:» та «blob:»;
  • До методу Intl.NumberFormat додано підтримку форматування одиниць виміру, валют, наукових та компактних позначень (наприклад, «Intl.NumberFormat('en', {style: 'unit', unit: 'meter-per-second'}));
  • Додані нові CSS-властивості overscroll-behavior-inline та overscroll-behavior-block для управління поведінкою прокручуванням при досягненні логічного кордону області прокручування;
  • Для CSS-властивості white-space реалізовано підтримку значення break-spaces;
  • У Service Workers додано підтримку аутентифікації HTTP Basic та виведення штатного діалогу для введення параметрів входу;
  • API Web MIDI тепер може застосовуватися лише у контексті безпечного з'єднання (https, локальний файл чи localhost);
  • Оголошено застарілим API WebVR 1.1, на зміну якому прийшов API WebXR Device, що дозволяє отримати доступ до компонентів для створення віртуальної та доповненої реальності та уніфікувати роботу з різними класами пристроїв від стаціонарних шоломів віртуальної реальності до рішень на базі мобільних пристроїв.
    У інструментах для розробників додано можливість копіювання в буфер обміну CSS-властивостей вузла DOM через контекстне меню, яке викликається правим кліком на вузлі в дереві DOM. Додано інтерфейс (Show Rendering/ Layout Shift Regions) для відстеження зсувів розмітки через відсутність заглушок під рекламу та зображення (коли під час перегляду завантаження чергового зображення зсуває текст вниз). Панель аудиту оновлена ​​до випуску Lighthouse 5.1. Забезпечено автоматичне перемикання на темну тему оформлення DevTools під час використання темної теми в ОС. У режимі інспектування мережі додано ознаку завантаження ресурсу з кешу запобіжного завантаження (prefetch cache). У панелі Application додано підтримку відображення push-повідомлень та повідомлень. У web-консолі при перегляді об'єктів тепер відображаються приватні поля класів;
  • У JavaScript-движку V8 оптимізовано зберігання статистики про типи операндів, відданих різні операції (дозволяє оптимізувати виконання даних операцій з урахуванням конкретних типів). Щоб скоротити споживання пам'яті, вектори для обліку типів тепер розміщуються в пам'яті тільки після виконання певного обсягу байткоду, що виключає застосування оптимізації для функцій з коротким часом життя. Вказана зміна дозволяє заощадити 1–2% пам'яті у версії для настільних систем та 5–6% для мобільних пристроїв;
  • Покращена масштабованість фонової компіляції WebAssembly — що більше процесорних ядер у системі, то більше виграш від доданих оптимізації. Наприклад, на 24-ядерному комп'ютері з процесором Xeon час компіляції демонстраційної програми Epic ZenGarden скоротився вдвічі;

Окрім нововведень та виправлення помилок у новій версії усунуто 52 вразливості. Багато вразливостей виявлено в результаті автоматизованого тестування інструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer та AFL. Одна проблема (CVE-2019-5870) позначена як критична, тобто. дозволяє обійти всі рівні захисту браузера та виконати код у системі за межами sandbox-оточення. Деталі про критичну вразливість поки не розголошуються, відомо що вона може призвести до звернення до вже звільненої області пам'яті в коді обробки мультимедійних даних. У рамках програми з виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 38 премій на суму 33500 доларів США (одна премія $7500, чотири премії $3000, три премії $2000, чотири премії $1000 та вісім премій $500). Розмір 18 винагород поки не визначений.

Джерело: linux.org.ru

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