27.11.2020

Релиз Chrome 87


Компания Google представила релиз web-браузера Chrome 87. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, возможностью загрузки модуля Flash по запросу, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 88 запланирован на 19 января.

Основные изменения в Chrome 87:

  • Включён режим урезания активности фоновых вкладок («Tab Throttling»). Браузер теперь отдаёт приоритет активным вкладкам и ограничивает потребление CPU фоновыми вкладками, снижая интенсивность пробуждения процессора. В соответствии с собранной статистикой около 40% потребления ресурсов при вызове таймеров JavaScript приходилось на фоновые вкладки. Подобные вкладки после пяти минут нахождения в фоне теперь могут активироваться не чаще одного раза в минуту, за исключением операций воспроизведения мультимедийного содержимого, активных потоков RTCDataChannel и MediaStreamTrack или обработки поступивших уведомлений. Проведённое тестирование показало, что внесённые изменения при наличии большого числа открытых вкладок позволили до 5 раз снизить нагрузку на CPU и продлить время автономной работы более чем на час.
  • Включено отслеживание видимости вкладок и окон при выполнении отрисовки. Операции отрисовки теперь выполняются только если они приводят к изменению видимой пользователю информации и приостанавливаются для фоновых вкладок. Благодаря данной оптимизации удалось добиться сокращения времени запуска браузера на 25%, ускорения загрузки страниц на 7% и снижения потребления памяти.
  • В версии для Android включён по умолчанию кэш перехода (Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок «Назад» и «Вперёд» или при навигации по ранее просмотренным страницам текущего сайта. На настольных системах кэш можно включить при помощи настройки chrome://flags/#back-forward-cache.
  • Продолжено постепенное включение HTTP/3 и варианта протокола QUIC на основе спецификаций IETF (ранее по умолчанию использовался Google-вариант QUIC). По статистике Google по сравнению с HTTP поверх TCP+TLS 1.3 протокол IETF QUIC показал снижение задержек при поиске в Google Search на 2% и уменьшение времени ребуферизации в YouTube на 9% при увеличении пропускной способности на 3% для настольных и на 7% для мобильных систем.
  • До 50% увеличен охват отключения FTP по умолчанию. Вернуть FTP можно при помощи флага «—enable-ftp» или «—enable-features=FtpProtocol». В Chrome 88 поддержка FTP будет полностью отключена.
  • Помимо ранее добавленных функций закрепления и группировки вкладок в новой версии предложена возможность быстрого поиска вкладок. Пользователь теперь может просмотреть список всех открытых вкладок и быстро отфильтровать нужную вкладку, независимо от того в текущем или другом окне она находится. Поиск вкладок будет доведён вначале для пользователей Chromebook, а потом и для остальных настольных систем.
  • Появилась возможность выполнения действий с браузером из адресной строки. Например, можно набрать «удалить историю» и браузер предложит перейти к форме очистки истории перемещений или «редактировать пароли» и браузер откроет менеджер паролей. Пока распознаются только действия, связанные с конфиденциальностью и безопасностью.
  • Для страницы, показываемой при открытии новой вкладки, реализованы информационные карты, помогающие найти недавно просматриваемый контент и связанную с ним информацию. Карты призваны упростить продолжение работы с информацией, просмотр которой был прерван. Например, карты помогут найти рецепт блюда, который недавно был найден в сети, но утерян после закрытия страницы, продолжить выбор покупок в магазинах или вернуться к просмотру прерванного видео. Возможность будет доводиться до пользователей постепенно в ходе нескольких экспериментальных внедрений.
  • Предложена новая реализация интерфейса встроенного просмотрщика документов в формате PDF. Интерфейс примечателен выносом в верхнюю панель всех настроек. Если раньше в верхней панели отображались только название файла, информация о страницах, кнопки поворота, печати и сохранения, то теперь в неё перенесено и содержимое боковой панели, включавшей элементы управления масштабированием и размещения документа по размеру страницы. Появилась возможность просмотра аннотаций и добавлен режим двухстраничного просмотра.
  • 31 декабря, после официального прекращения поддержки Flash Player компанией Adobe, Chrome полностью перестанет обрабатывать Flash-контент, в том числе в прошлых выпусках. В Chrome 88 связанный с Flash Player код будет полностью удалён. Предприятиям, которым необходима поддержка Flash после 31 декабря, предложено воспользоваться отдельным сервисом HARMAN. 31 декабря также будет прекращена поддержка Google Cloud Print и убрана возможность сохранения в Google Drive со страницы управления выводом на печать (пользователям отныте потребуется осуществить печать в PDF и затем вручную загружать результат в Google Drive в при помощи меню «New › File upload» на сайте drive.google.com).
  • В версии для платформы Android предоставлена возможность подключения к web-сервисам в браузере с использованием учётной записи в Google, привязанной к устройству. Синхронизация при этом включается отдельно. Для пользователей, подключивших браузер к учётной записи Google, но не включивших синхронизацию, предоставлен доступ к сохранённым в учётной записи методам платежей и паролям.
  • При попытке отправки смешанных web-форм добавлен вывод предупреждения о потенциальном риске передачи данных через незашифрованный канал связи (в прошлой версии предупреждение выводилось при заполнении подобных форм, но вывод предупреждения при отправке был отменён). Под смешанными формами подразумеваются формы ввода на страницах, загруженных по HTTPS, но отправляющих данные по HTTP, что создаёт угрозу перехвата и подмены данных при совершении MITM-атак.
  • Продолжено блокирование небезопасной загрузки (без шифрования) исполняемых файлов. В новой версии реализована блокировка небезопасной загрузки документов (docx, pdf и т.п.) и обеспечен вывод предупреждений при небезопасной загрузке мультимедийных данных, текстовых файлов и изображений. Блокировка реализована, так как загрузка файлов без шифрования может использоваться для совершения вредоносных действий путём подмены содержимого в процессе MITM-атак. Ранее была включена блокировка небезопасной загрузки исполняемых файлов и архивов (zip, iso и т.п.).
  • Имена политик для предприятий переведены на инклюзивную терминологию. Термины «whitelist» и «blacklist» заменены на «allowlist» и «blocklist». Убрано слово Native. Например, политика DeviceNativePrinters теперь именуется DevicePrinters, а DeviceUserWhitelist — DeviceUserAllowlist. Уже используемые политики сохранят свою работу, но на странице chrome://policy для них будет показано предупреждение.
  • В облачном интерфейсе управления (Chrome Browser Cloud Management) реализована возможность удалённого выполнения команд в браузере. Например, можно удалённо инициировать очистку кэша или Cookie.
  • Внесены изменения для блокирования атаки NAT slipstreaming, позволяющей при открытии страницы в браузере организовать соединение сервера атакующего с любым портом UDP или TCP на системе пользователя, находящейся за транслятором адресов.

  • В API MediaDevices.getUserMedia() и MediaStreamTrack.applyConstraints() добавлена поддержка управления панорамированием, наклоном и масштабированием камеры. Доступ к возможностям по управлению движением камеры предоставляется только после явного предоставления приложению полномочий.
  • Добавлены сокращённые варианты написания различных CSS-свойств, управляющих логическим позиционированием элементов (для поддержки языков, в которых написание производится не сверху вниз и слева направо, логическое позиционирование использует понятия начала, конца и направления текста). Например, значения «margin-block-start», «margin-block-end», «margin-inline-start» и «margin-inline-end» теперь можно определить при помощи сводных свойств «margin-block» и «margin-inline» (т.е. вместо двух отдельных свойств теперь можно писать «margin-block: 2ch 2ch;», как это было раньше сделано в Firefox). Аналогичные короткие варианты реализованы для свойств padding-*. Вместо раздельных наборов свойств top, right, bottom и left предложены сводные свойства «inset», «inset-block» и «inset-inline».
  • Стабилизирован API Cookie Store для доступа Service worker к HTTP Cookies, выступающий асинхронной альтернативой применения document.cookie.
  • Расширен режим изоляции Cross-Origin, в котором при помощи заголовков Cross-Origin-Embedder-Policy и Cross-Origin-Opener-Policy задаются правила безопасного использования на странице привилегированных операций, таких как SharedArrayBuffer, Performance.measureMemory() и API профилирования (данные API могут применяться для осуществления атак по сторонним каналам, таким как Spectre). Изоляция подразумевает вынос обработчиков контента в отдельные процессы в привязке к источнику (origin — домен+порт+протокол), а не сайту, т.е. позволяет организовать разделение по разным процессам на основе домена ресурса, а не сайта со всеми посторонними включениями на страницах. В новой версии в качестве ключа для изолированного кластера используется origin, а не сайт. В изолированном кластере запрещено изменение свойства document.domain. Добавлен параметр window.crossOriginIsolated для определения выполнения в режиме изоляции.
  • Добавлен метод isInputPending(), доступный из navigator.scheduling и позволяющий определить наличие ввода при выполнении длительных операциях в скриптах, блокирующих ввод.
  • В режиме Origin Trials добавлен API Font Access, при помощи которого можно определить и использовать установленные в системе шрифты, а также манипулировать шрифтами на низком уровне (например, фильтровать и трансформировать глифы). С меткой Origin Trials распространяются экспериментальные возможности, требующие отдельной активации. Origin Trial подразумевает возможность работы с тестируемыми API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
  • В Service Worker разрешена обработка Range-запросов, используемых для передачи данных отдельными блоками.
  • В Streams API добавлна поддержка переносимых потоков, позволяющих передавать объекты ReadableStream, WritableStream и TransformStream в форме аргументов при вызове postMessage(), для того чтобы вынести выполнение операции в web worker с клонированием данных в фоновом режиме.
  • В CSS-свойства ascent-override, descent-override и line-gap-override добавлен дескриптор @font-face для переопределения метрик шрифта, что может быть использовано для унификации отображения шрифта в разных браузерах и операционных системах, а также для исключения сдвига макета страницы web-шрифтами.
  • Добавлено несколько новых CSS-свойств для декорирования и подчёркивания текста, позволяющих избавиться от проблем со слишком близким прилеганием линии подчёркивания к тексту или её выходом за край текста. Для изменения толщины линии предложено свойство text-decoration-thickness, а для управления размещением подчёркивания свойство text-underline-offset и параметр from-font в text-underline-position.
  • В CSS-свойстве quotes реализовано значение ‘auto’, при указании которого будут использоваться символы кавычек, определённые в браузере по умолчанию и зависящие от выбранного языка.
  • В JavaScript реализован метод Atomics.waitAsync(), представляющий собой асинхронную версию Atomics.wait(), позволяющую ожидать определения размещения SharedArrayBuffer по аналогии с Atomics.wait(), но с возвращением Promise.
  • Добавлен экспериментальный внутренний С API (включается при запуске с опцией «—enable-unsafe-fast-js-calls»), позволяющий выполнять системные вызовы из JavaScript. Подобная возможность необходима для повышения производительности некоторых графических API в Chrome.
  • В инструментах для web-разработчиков реализована новая панель WebAuthn тестирования и отладки аутентификации на сайте с использованием не настоящих, а эмулируемых USB-токенов.

Кроме нововведений и исправления ошибок в новой версии устранено 33 уязвимости. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 23 премий на сумму 31500 долларов США (одна премия $7500, три премии $5000, две премии $3000, одна премия $1000 и четыре премии $500). Размер 12 вознаграждений пока не определён.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54105

Добавить комментарий