Реліз Chrome 76

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

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

  • Активовано за умовчанням режим захисту від передачі сторонніх Cookie, який у разі відсутності атрибуту SameSite у заголовку Set-Cookie за умовчанням виставляє значення «SameSite=Lax», що обмежує відправлення Cookie для вставок зі сторонніх сайтів (але сайти, як і раніше, зможуть скасувати обмеження, явно при установці Cookie значення SameSite = None). До цього часу браузер передавав Cookie на будь-який запит до сайту, для якого є виставлені Cookie, навіть якщо спочатку відкритий інший сайт, а звернення здійснюється опосередковано за допомогою завантаження картинки або через iframe. У режимі 'Lax' передача Cookie блокується лише для міжсайтових субзапитів, таких як запит зображення або завантаження контенту через iframe, які часто використовуються для організації CSRF-атак та для відстеження переміщень користувача між сайтами.
  • Припинено відтворення Flash-контенту за промовчанням. До випуску Chrome 87, який очікується в грудні 2020 року, підтримку Flash можна буде повернути в налаштуваннях (Advanced > Privacy and Security > Site Settings) з наступним явним підтвердженням операції відтворення Flash-контенту для кожного сайту (підтвердження запам'ятовується до перезапуску браузера). Повне видалення коду для забезпечення підтримки Flash синхронізовано з раніше озвученим компанією Adobe планом припинення супроводу технології Flash у 2020 році;
  • Для підприємств до адресного рядка додано можливість пошуку файлів у сховищі Google Drive;

    Реліз Chrome 76

  • Почалася масове блокування у Chrome неприйнятної реклами, що заважає сприйняттю вмісту та не відповідає критеріям, виробленим Коаліцією щодо покращення реклами;
  • Реалізовано адаптивний режим перемикання на нову сторінку, при якому очищення поточного вмісту та відображення білого фону здійснюється не відразу, а через невелику затримку. Для сторінок, що швидко завантажуються, очищення призводить лише до мерехтіння і не несе корисного навантаження, покликаного інформувати користувача про початок завантаження нової сторінки. У новому випуску, якщо сторінка відкривається швидко і вкладається в невелику затримку, то нова сторінка відображається за місцем, безшовно замінюючи попередню (наприклад, зручно при переході на близькі за оформленням та колірною гамою інші сторінки того ж сайту). Якщо для відображення сторінки потрібен якийсь помітний користувачеві час, то, як і раніше, екран буде попередньо очищений;
  • Посилено критерії визначення активності користувача на сторінці. Chrome дозволяє виводити спливаючі повідомлення та відтворювати настирливий відео/аудіо контент лише після дій користувача зі сторінкою. У новому випуску натискання Escape, наведення курсору на посилання і торкання екрана більше не сприймаються як взаємодія, що активують сторінку (потрібний явний клік, введення тексту або прокручування);
  • доданий медіа-запит «prefers-color-scheme», що дозволяє сайтам визначити застосування в браузері темної теми оформлення і автоматично включити темне оформлення для сайту, що переглядається.
  • При включенні темної теми оформлення в збірках для Linux темним кольором тепер відображається і адресний рядок;
  • Блокована можливість визначення відкриття сторінки в режимі інкогніто через маніпуляції з FileSystem API, яка раніше використовувалася деякими виданнями для нав'язування платної підписки у разі знеособленого відкриття сторінок без запам'ятовування Cookie (щоб користувачі не використовували приватного режиму для обходу механізму надання безкоштовного пробного доступу). Раніше при роботі в режимі інкогніто браузер блокував доступ до FileSystem API для запобігання осідання даних між сеансами, що дозволяло JavaScript перевірити можливість збереження даних через FileSystem API і в разі збою судити про активність режиму інкогніто. Тепер доступ до FileSystem API не блокується, а вміст очищується після завершення сеансу;
  • Додані нові виклики в
    API Payment Request та Payment Handler. В об'єкті PaymentRequestEvent з'явився новий метод changePaymentMethod(), а в об'єкт PaymentRequest доданий новий обробник події paymentmethodchange, які дозволяють збираючому платежу майданчику або web-додатку, відреагувати на зміну користувачем методу проведення платежу. У новому випуску пов'язаних з платежами API також спрощено тестування додатків із використанням самопідписаних сертифікатів. Для ігнорування помилок перевірки сертифікатів у процесі розробки додано нову опцію командного рядка «—ignore-certificate-errors»;

  • В адресний рядок поруч із кнопкою для додавання до закладок для web-додатків, що працюють у режимі Desktop Progressive Web Apps (PWA), доданий ярлик для встановлення web-додатка в систему для роботи як з відокремленою програмою;
    Реліз Chrome 76

  • Для мобільних пристроїв надано можливість керування виведенням міні-панелі із запрошенням на додавання програми на домашній екран. Для PWA-програм (Progressive Web App) міні-панель за замовчуванням автоматично показується при першому відкритті сайту. Розробник тепер може відмовитися від виведення даної панелі та реалізувати власне запрошення до встановлення, для чого можна встановити обробник події
    передпочатком installprompt і прив'язати до нього виклик preventDefault();
    Реліз Chrome 76

  • Збільшено частоту перевірки оновлення для встановлених в оточенні Android PWA-програм (Progressive Web App). Оновлення WebAPK тепер перевіряються щодня, а не раз на три дні як раніше. Якщо в маніфесті за такої перевірки буде виявлено зміну хоч однієї ключової властивості, браузер завантажить та встановить новий WebAPK;
  • В API Async Clipboard додано можливість програмного читання та запису зображень через буфер обміну, використовуючи методи navigator.clipboard.read() та navigator.clipboard.write();
  • Реалізовано підтримку групи HTTP-заголовків Fetch Metadata (Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site та Sec-Fetch-User), що дозволяють надіслати додаткові метадані про характер запиту (міжсайтовий запит, запит через тег img і т.п.) для прийняття на сервері заходів для захисту від деяких типів атак (наприклад, малоймовірно, що посилання на обробник для переказу грошей буде задано через тег img, тому такі запити можна блокувати без передачі додатку);
  • Додана функція form.requestSubmit(), яка ініціює програмне відправлення даних форми за аналогією з кліком на кнопку відправлення даних. Функція може застосовуватися при розробці власних кнопок відправки форми, для яких виклику form.submit() недостатньо через те, що він не призводить до інтерактивної перевірки параметрів, генерації події submit і передачі прив'язаних до кнопки відправлення даних;
  • У IndexedDB додано функцію commit (), що дозволяє фіксувати транзакції, пов'язані з об'єктом IDBTransaction, не чекаючи завершення обробників подій у всіх пов'язаних запитах. Використання commit() дозволяє збільшити пропускну здатність запитів на запис та читання у сховищі та явно контролювати завершення транзакції;
  • У функції Intl.DateTimeFormat, такі як formatToParts() і resolveOptions(), додані опції dateStyle та timeStyle, що дозволяють запросити специфічні для локалі стилі відображення дати та часу;
  • Метод BigInt.prototype.toLocaleString() змінено для форматування чисел з урахуванням локалі, а метод Intl.NumberFormat.prototype.format() та функція formatToParts() адаптовані для підтримки вхідних значень з типом BigInt;
  • Дозволено використання API Media Capabilities у всіх типах Web Worker-ів, що може бути використане для вибору оптимальних параметрів при створенні MediaStream із worker-а;
  • Доданий метод Promise.allSettled(), який повертає тільки вже виконання або відхилені promise, не враховуючи promise, що очікують виконання;
  • Видалено опцію «—disable-infobars», яка раніше могла застосовуватися для приховання спливаючих попереджень в інтерфейсі Chrome (для приховування пов'язаних з безпекою попереджень запропоновано правило CommandLineFlagSecurityWarningsEnabled);
  • В інтерфейс для роботи з блобами додані методи text(), arrayBuffer() та stream() для читання певних типів даних;
  • Додано CSS-властивість "white-space:break-spaces", що визначає, що будь-яка послідовність прогалин, що призводить до переповнення рядка, повинна бути розірвана;
  • Почалася робота з чищення прапорів у chrome://flags, наприклад, віддалений прапор для відключення атрибуту «ping», що дозволяє власникам сайтів відстежувати переходи за посиланнями зі сторінок. У разі переходу за посиланням при наявності в тегу «a href» атрибуту «ping=URL» у браузері тепер не можна відключити відправлення додаткового POST-запиту до вказаного в атрибуті URL з відомостями про перехід, що відбувся. Сенс блокування ping втрачається так як цей атрибут визначено у специфікаціях HTML5 і існує безліч обхідних методів для здійснення тієї ж дії (наприклад, прокидання через транзитне посилання або перехоплення кліків обробниками JavaScript);
  • Прибраний прапор для вимкнення режиму суворої ізоляції сайтів, при якому сторінки різних хостів завжди розміщуються у пам'яті різних процесів, у кожному з яких застосовується свій sandbox.
  • У двигуні V8 значно збільшена продуктивність сканування та парсингу формату JSON. Для популярних веб-сторінок відзначається прискорення виконання JSON.parse до 2.7 разів. Значно прискорено перетворення unicode-рядків, наприклад швидкість роботи викликів String#localeCompare, String#normalize, а також деяких API Intl, зросла майже вдвічі. Також суттєво оптимізована продуктивність операцій із замороженими масивами при використанні операцій, подібних frozen.indexOf(v), frozen.includes(v), fn(…frozen), fn(…[…frozen]) та fn.apply(this, [… frozen]).

    Реліз Chrome 76

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

Джерело: opennet.ru

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