Выпуск web-браузера Chrome 60
25 июля 2017 года
Компания Google представила релиз web-браузера Chrome 60. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 60:
- Реализована возможность использования формата кодирования видео VP9 в медиаконтейнерах MP4 (ISO BMFF). Поддержка MP4 потребовала реализации нового строкового формата для определения параметров кодека VP9, который теперь доступен и в различных мультимедийных Web API;
- Добавлен Paint Timing API, позволяющий отследить время различных стадий отрисовки страницы. При помощи данного API можно выявить узкие места загрузки страницы и проблемные моменты, например, ситуации когда посетителю уже видна ссылка или форма ввода, но из-за того, что JavaScript ещё не загрузился, их обработчики недоступны;
- Добавлено CSS-свойство font-display и правило @font-face, которые дают возможность определить как и когда отображать текстовое содержимое, если шрифт ещё не загрузился. Ранее при использовании внешних шрифтов отрисовка текста не производилась до окончания загрузки шрифта. Теперь текст можно отобразить сразу, временно используя шрифт по умолчанию;
- В API Credential Management API, предоставляющий сайтам возможность сохранять и запрашивать учётные данные пользователя, добавлена возможность получения пользовательского пароля непосредственно в составе структуры PasswordCredential, без необходимости подключения обработчика при помощи метода fetch(). Для точного следования спецификациям, развиваемым рабочей группой W3C Web Authentication Working Group, свойство requireUserMediation переименовано в preventSilentAccess;
- Сайтам предоставлена возможность собирать платежи через собственные
Android-приложения, используя Payment Request API;
- Добавлена поддержка нового синтаксиса клонирования и объединения объектов. Например, для клонирования вместо "Object.assign({}, data)" теперь можно указать "{ ...data }", а для объединения "{ ...defaultSettings, ...userSettings }";
- Представлен новый API Web Budget, который позволяет сайтам запросить права на отправку ограниченного числа push-сообщений, приводящих в выполнению фоновых работ, таких как синхронизация данных, без вывода видимого для пользователя уведомеления. API разработано в рамках инициативы по подавлению активности в фоновых вкладках;
- Добавлена поддержка формата Web Push Encryption (шифрованные push-сообщения), для определения использования которого можно применять свойство PushManager.supportedContentEncodings;
- Добавлен атрибут PushSubscription.expirationTime, который предоставляет информацию об истечении времени подписки на push-уведомления;
- Для увеличения производительности и предсказуемости поведения, события pointermove и mousemove, теперь доставляются один раз на каждый AnimationFrame, что соответствует поведению событий scroll и TouchEvents;
- Добавлен псевдо-класс CSS ":focus-within", влияющий на работу любых элементов, на которые действует псевдо-класс ":focus", а также на все их потомки;
- Реализована функция frames(), формирующая на основе заданного значения набор из равных интервалов;
- Для обеспечения перехвата операций редактирования в InputEvent добавлена возможность обработки пользовательского ввода при помощи скрипта;
- Для увеличения безопасности диалог BeforeUnload, который вызывается когда пользователь покидает сайт, теперь показывается только если на странице с которой осуществлён вызов производились какие-либо действия пользователя (если закрыть страницу сразу диалог не будет показан). На обработчики событий BeforeUnloadEvent данное изменение пока не распространяется;
- Переведена в разряд устаревших большая порция API, в том числе WebKitAnimationEvent, WebKitTransitionEvent, RTCPeerConnection.getStreamById(), SVGPathElement.getPathSegAtLength(), indexedDB.webkitGetDatabaseNames(), Headers.prototype.getAll().
Кроме нововведений и исправления ошибок в новой версии устранено 40 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity (Архивная копия от 28 октября 2020 на Wayback Machine) и LibFuzzer (Архивная копия от 28 октября 2020 на Wayback Machine). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 21 премию на сумму 26 тысяч долларов США (по одной премии в $10000, $5000, $3000 и $2000, пять премии $1000 и две премии $500). Размер десяти вознаграждений пока не определён.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.