Релиз Chrome 88
21 января 2021 года
Компания Google представила релиз web-браузера Chrome 88. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 89 запланирован на 2 марта.
Основные изменения в Chrome 88(недоступная ссылка):
- Для небольшого процента пользователей включена поддержка профилей для разделения учётных записей пользователей. Пользователь сможет создать новый профиль Chrome и настроить его активацию при подключении к определённой учётной записи в Google, что позволит разным пользователям разделять свои закладки, настройки и историю посещений. При попытке входа в учётную запись, привязанную к другому профилю, пользователю будет предложено переключиться на этот профиль. При наличии у пользователя привязки к нескольким профилям, будет предоставлена возможность выбора желаемого профиля.
- В состав включена третья редакция манифеста Chrome, которая пока предложена опционально. Разработчикам предоставлена возможность создания дополнений с использованием Manifest V3, но поддержка дополнений, использующих вторую версию манифеста, какое-то время будет сохранена. Дата прекращения поддержки Manifest V2 пока не определена, но период миграции на новый манифест продлится как минимум год. Манифест Chrome определяет возможности и ресурсы, предоставляемые дополнениям. Новый манифест разработан в рамках инициативы по усилению безопасности, конфиденциальности и производительности дополнений. Главной целью вносимых изменений является упрощение создания безопасных и высокопроизводительных дополнений, и усложнение возможности создания небезопасных и медленных дополнений. Обратной стороной нового манифеста является нарушение работы многих дополнений для блокирования нежелательного контента и обеспечения безопасности из-за ограничений в использовании блокирующего режима работы API webRequest.
- С целью блокирования утечки поисковых ключей через DNS, по умолчанию прекращена обработка ввода отдельных слов в адресной строке как потенциальных сайтов. До сих пор, в случае ввода одного слова в адресной стоке, браузер вначале пытался в DNS определить наличие хоста с таким именем, полагая, что пользователь пытается открыть поддомен, и уже потом перенаправлял запрос поисковой системе. Таким образом, владелец DNS-сервера, указанного в настройках пользователя, получал сведения о состоящих из одного слова поисковых запросах, что оценивалось как нарушение конфиденциальности. Для предприятий, использующих интернет-хосты без поддомена (например, "https://helpdesk/ (Архивная копия от 14 июля 2013 на Wayback Machine)") предоставлена опций для возвращения старого поведения.
- Для небольшого процента пользователей предложен новый ненавязчивый интерфейс подтверждения полномочий, в котором запросы на подтверждения показываются в адресной строке перед доменом, не отвлекая пользователя. В отличие от ранее применявшихся запросов, новый интерфейс не требует мгновенного решения и останется на виду, давая возможность подтвердить или блокировать полномочия при возникновении необходимости.
- Проведена модернизация менеджера паролей. Добавлена кнопка для проверки сохранённых паролей на надёжность с возможностью быстрой смены небезопасных паролей. Реализован интерфейс для смены паролей сразу для нескольких учётных записей, связанных с одним сайтом.
- Добавлена экспериментальная поддержка быстрого поиска вкладок, которая ранее была ограничена версией для Chrome OS. Пользователь может просмотреть список всех открытых вкладок и быстро отфильтровать нужную вкладку, независимо от того в текущем или другом окне она находится. Для включения поиска вкладок можно использовать флаг "chrome://flags/#enable-tab-search".
- Расширена защита от небезопасной отправки форм ввода на страницах, загруженных по HTTPS, но отправляющих данные по HTTP. Предупреждение о потенциальном риске передачи данных через незашифрованный канал связи при отправке смешанной формы теперь выводится в виде индикатора, а в форме отдельной промежуточной страницы, требующей подтверждения выполняемого действия. Изначально новое предупреждение было добавлено в один из прошлых выпусков, но сразу отменено из-за всплывших проблем с редиректами. Теперь эти проблемы решены и предупреждение выводится не только при прямой отправке формы по "http://", но и при попытке редиректа на "http://" с использованием кодов 307 и 308, допускающих проброс данных POST-запроса.
- На платформе Android для определённого процента пользователей реализована новая кнопка с микрофоном, показываемая в верхней панели, рядом с адресной строкой. Кнопка позволяет через Google Assistant прочитать текущую страницу или перевести на другой язык.
- Для всех пользователей включён режим урезания активности фоновых вкладок ("Tab Throttling"), который в прошлом выпуске был предложено небольшому проценту пользователей. Браузер теперь отдаёт приоритет активным вкладкам и ограничивает потребление CPU фоновыми вкладками, снижая интенсивность пробуждения процессора. В соответствии с собранной статистикой около 40% потребления ресурсов при вызове таймеров JavaScript приходилось на фоновые вкладки. Подобные вкладки после пяти минут нахождения в фоне теперь могут активироваться не чаще одного раза в минуту, за исключением операций воспроизведения мультимедийного содержимого, обработчиков сетевых событий и поступивших уведомлений, активных потоков RTCDataChannel и MediaStreamTrack. Проведённое тестирование показало, что внесённые изменения при наличии большого числа открытых вкладок позволили до 5 раз снизить нагрузку на CPU и продлить время автономной работы более чем на час.
- Для всех пользователей на страницу, показываемую при открытии новой вкладки, добавлены информационные карты, помогающие найти недавно просматриваемый контент и связанную с ним информацию. Карты призваны упростить продолжение работы с информацией, просмотр которой был прерван. Например, карты помогут найти рецепт блюда, который недавно был найден в сети, но утерян после закрытия страницы, продолжить выбор покупок в магазинах или вернуться к просмотру прерванного видео.
- Для пользователей, входящих в учётную запись Google, предоставлена возможность доступа к методам платежей и паролям, сохранённым в учётной записи Google, без включения Chrome Sync.
- Обеспечена приостановка вывода web-уведомлений при показе презентации и предоставлении совместного доступа к экрану. Накопившиеся уведомления будут показаны после завершения сеанса совместного доступа.
- Прекращена поддержка протокола FTP. Постепенное урезание поддержки FTP началось ещё в Chrome 63, а в Chrome 77 поддержка FTP была отключена по умолчанию для 50% пользователей, но был оставлен флаг для её возвращения. В Chrome 88 поддержка FTP полностью отключена.
- Удалён код, связанный с обработкой Flash-контента. Поддержка Flash Player компанией Adobe была официально прекращена 31 декабря. Предприятиям, которым необходима поддержка Flash, предложено воспользоваться отдельным сервисом HARMAN.
- Удалён код для поддержки протокола DTLS 1.0 (Datagram Transport Layer Security), основанный на TLS 1.1 и использовавшийся в WebRTC для передачи звука и видео. Вместо DTLS 1.0 рекомендуется использовать DTLS 1.2, основанный на TLS 1.2 (спецификация DTLS 1.3 на базе TLS 1.3 ещё не готова).
- В Chrome Web Store прекращена поддержка дополнения Legacy Browser Support (LBS), обеспечивающего совместимость со старыми дополнениями. Функциональность LBS теперь встроена в Chrome.
- Прекращена поддержка Google Cloud Print и убрана возможность сохранения в Google Drive со страницы управления выводом на печать (пользователям отныне потребуется осуществить печать в PDF и затем вручную загружать результат в Google Drive в при помощи меню "New File upload" на сайте drive.google.com).
- Прекращена поддержка платформы OS X 10.10 (Yosemite), выпущенной в 2014 году. В качестве минимальной версии macOS заявлен выпуск OS X 10.11 (El Capitan).
- Достигла финальной стадии инициатива по блокированию небезопасной загрузки (без шифрования) контента. В новой версии реализована блокировка небезопасной загрузки мультимедийных данных, текстовых файлов и изображений. Блокировка реализована, так как загрузка файлов без шифрования может использоваться для совершения вредоносных действий путём подмены содержимого в процессе MITM-атак. Ранее была включена блокировка небезопасной загрузки исполняемых файлов, архивов (zip, iso и т.п.) и документов (docx, pdf и т.п.). Для платформы Android введение ограничений отстаёт на один релиз, т.е. в нынешнем выпуске включена блокировка документов.
- В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API, которые пока ограничены платформой Android. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
- API Digital Goods для упрощения организации покупок из web-приложений. Обеспечивает связывание с сервисами распространения товаров, в Android
предоставляет обвязку над API Android Play Billing.
- В сеансы на базе WebXR для дополненной реальности добавлена возможность определения параметров окружающего освещения для придания моделям более естественного вида и более гармоничной интеграции с окружением пользователя.
- Механизм Idle Detection для определения неактивности пользователя, позволяющий определять время, когда пользователь не взаимодействует с клавиатурой/мышью, запущен хранитель экрана, экран заблокирован или работа выполняется на другом мониторе. Информирование приложения об неактивности осуществляется через отправку уведомления после достижения заданного порога неактивности.
- Стабилизирован и теперь распространяется вне Origin Trials метод Performance.measureMemory() для оценки потребления памяти при обработке web-приложения или web-страницы. Может использоваться для анализа и оптимизации потребления памяти в web-приложениях, а также для выявления регрессивного роста потребления памяти.
- В API PointerLock стабилизирован флаг unadjustedMovement, при установке которого данные о событиях о движении мыши передаются в чистом виде, без корректировок и ускорения. Например, применение unadjustedMovement даёт возможность обеспечить более качественное движение в шутерах от первого лица.
- Ссылки с атрибутом target="_blank" в теге теперь обрабатываются по аналогии с использованием атрибута rel="noopener", т.е. воспринимаются как не заслуживающие доверия страницы. Для открытых по данным ссылкам страниц не выставляется свойство Window.opener и не открывается доступ к контексту из которого была открыта ссылка. Изменение позволяет блокировать атаки "tab-napping", при которых новая вкладка или окно, может обращаться к контексту исходной страницы, с которой была открыта ссылка.
- Улучшены стили, предлагаемые по умолчанию при активации тёмных тем оформления. Добавлены тёмные стили элементов форм и полос прокрутки, применяемые при выборе в операционной системе тёмной темы. Для упрощения настройки стилей для различных режимов отображения предложено CSS-свойство color-scheme и одноимённый мета-тег.
- В addEventListener() добавлена опция "signal", позволяющая прикрепить обработчик AbortSignal, созданный при помощи вызова AbortController, для отмены подписки на события.
- Добавлено CSS-свойство aspect-ratio для явной привязки коэффициента соотношения сторон к любому элементу, который будет учитываться при автоматическом вычислении размеров. Предложенное свойство позволяет добиться автоматического вычисления недостающего размера при указании только высоты или ширины. Ранее подобное было возможным только для изображений, а при помощи свойства aspect-ratio может применяться для любых других элементов, например, для подгонки iframe под указанную высоту или ширину.
- В CSS-псевдокласс :not() добавлена поддержка сложных селекторов. Например: ":not(.a + .b .c)".
- В метод ElementInternals добавлен атрибут shadowRoot, позволяющий из собственных элементов обращаться к своему отдельному корню в Shadow DOM (Архивная копия от 23 октября 2020 на Wayback Machine), независимо от состояния. Кроме того, в добавлены дополнительные ограничения в метод attachInternals(), который теперь будет генерировать исключение, при попытке вызова конструктора для создаваемого элемента.
- В методе WakeLock.request() параметр "type" переведён в категорию необязательных и по умолчанию выставляется в значение "screen".
- Добавлена возможность более гибкого управления ключами для изоляции в отдельных процессах. Изоляция подразумевает вынос обработчиков контента в отдельные процессы в привязке к источнику (origin - домен+порт+протокол), а не сайту, т.е. позволяет организовать разделение по разным процессам на основе домена ресурса, а не сайта со всеми посторонними включениями на страницах. Предложенное изменение позволяет управлять помещением в отдельные процессы синхронно выполняемых скриптов, манипулирующих значением document.domain, или вызовов postMessage() с экземплярами WebAssembly.Module.
- Добавлена поддержка типа SharedArrayBuffer, который может использовать в окружениях, изолированных в отдельных процессах при помощи механизмов Cross-Origin-Embedder-Policy и Cross-Origin-Opener-Policy. Для атомарного доступа к объектам SharedArrayBuffer предложен объект Atomics.
- В CSS-свойстве clip-path добавлена возможность определения ограничивающей видимость области, заданной при помощи функции path() в формате контура SVG. Например "clip-path: path(oddeven, 'M 5 5 h 100 v 100 Z')".
- Добавлена поддержка HTTP-заголовка Permissions-Policy, который пришёл на смену HTTP-заголовку Feature-Policy, предназначенному для включения определённых возможностей и управления доступом к API (например, можно включить синхронный режим работы XMLHttpRequest или отключить Geolocation API)
- В JavaScript-движке V8 реализован экспериментальный RegExp-движок, для включения которого можно использовать флаг "--enable-experimental-regexp-engine". Движок примечателен использованием алгоритма, работающего без
возвратов (backtracking), что позволяет добиться линейного изменения времени выполнения, зависящего от размера обрабатываемой строки. Текущий движок Irregexp в большинстве ситуаций работает очень быстро, но начинает буксовать при обработке некоторых шаблонов, время выполнения которых сильно зависит от размера входной строки.
- В инструментах для web-разработчиков примерно на 37% сокращено время запуска. Реализована эмуляция работы в условиях отсутствия поддержки в браузере определённых типов изображений (например, можно отключить AVIF и WebP и проверить сработает ли на сайте замена на PNG). Добавлен новый инструмент для наглядной оценки углов, задаваемых в CSS-свойствах.
В панели анализа производительности появилась возможность визуализация метрик Core Web Vitals, учитывающих сводные показатели времени загрузки, отзывчивости и стабильности содержимого. В панели отслеживания сетевых операций добавлена сводка о сбоях выполнения запросов, связанных с блокировками CORS (Cross-origin Resource Sharing), а в контекстное меню добавлена опция "Copy value" для копирования отдельных параметров запроса. Добавлены новые возможности для отладки WebAssembly.
В панели Storage добавлена симуляция исчерпания квоты на размер браузерного хранилища. Расширена информация о Web Worker. В панели Elements обеспечено выделение цветом псевдоэлементов. Представлен экспериментальный отладчик моделей компоновки элементов страницы Flexbox.
Кроме нововведений и исправления ошибок в новой версии устранено 36 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity (Архивная копия от 28 октября 2020 на Wayback Machine), LibFuzzer (Архивная копия от 28 октября 2020 на Wayback Machine) и AFL. Одна уязвимость (CVE-2021-21117, проблемы с применением ограничений в Cryptohome) помечена как критическая, т.е. позволяет обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 26 премий на сумму 81000 долларов США (одна премия $30000, одна премия $16000, четыре премии $5000, две премии $2000, четыре $1000 и две премии $500). Размер 10 вознаграждений пока не определён.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.