Компания Google представила релиз web-браузера Chrome 54. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающий основой Chrome. Браузер Chrome отличается использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 54:
- При обнаружении сетевых проблем иконки вкладок становятся бесцветными, а в заголовке страниц, которые не удалось открыть, отображается имя хоста вместо полного URL;
- В раздел синхронизированных вкладок в интерфейсе просмотра истории посещений добавлена кнопка для скрытия информации о страницах, открытых на других устройствах;
- Для снижения нагрузки на процессор для пометки прикреплённых вкладок теперь отображаются статические изображения (синяя точка) вместо анимации;
- Добавлена поддержка спецификации Custom Elements V1, позволяющей через JavaScript определять новые элементы HTML (вводить новые теги) или создавать элементы, наследующие возможности существующих элементов, логически объединять собственную функциональность в форме нового тега, расширять API существующих элементов DOM. Возможность использования ранее доступного API Custom Elements V0 сохранена. В отличие от нулевой спецификации первая версия одобрена и принята для внедрения во все основные браузеры, в то время как нулевая версия рассматривалась как предварительная экспериментальная реализация;
- Поддержка API BroadcastChannel, предоставляющего средства для обмена сообщениями между web-приложениями, одновременно открытыми в нескольких окнах или вкладках (например, в web-интерфейсе редактирования в разных вкладках открыты разные документы). При помощи BroadcastChannel приложение может отправить данные в широковещательном режиме (один отправитель - много получателей), охватив все окна, вкладки, iframe, web worker и service worker, содержащие контент одного и того же сайта;
- В Chrome для Android предоставлена возможность использования API Element.requestFullScreen() для перехода в полноэкранный режим при смене ориентации экрана, что позволяет реализовать в медиаплеерах функцию перехода на полный экран при повороте устройства;
- В Chrome для Android добавлена возможность продолжения воспроизведения видео в фоновых вкладках. Для определения воспроизведения в фоне можно использовать API Page Visibility;
- Для CanvasRenderingContext2D представлен атрибут imageSmoothingQuality, позволяющий задать уровень качества для операций масштабирования (чем выше качество тем больше нагрузка на CPU);
- Для определения корня заданного узла DOM представлен метод Node.getRootNode(options);
- В API Resource Timing добавлена поддержка атрибутов transfer, encoded и decoded, которые можно использовать для отслеживания попаданий в кэш;
- Добавлено свойство user-select, позволяющее указать режим выделения элементов (например, можно запретить выделение текста);
- Добавлены экспериментальные API Foreign Fetch для организации ответа на внешние сетевые запросы и WebUSB для доступа к USB-устройствам, привязанным к web-приложению;
- Добавлено свойство text-size-adjust для управления автоматическим масштабированием шрифтов на мобильных устройствах;
- Реализована возможность автоматического преобразования встроенных на страницы Flash-проигрывателей видео с YouTube в представление на HTML5.
Кроме нововведений и исправления ошибок, в новой версии устранена 21 уязвимость. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity и LibFuzzer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 29133.7 долларов США (одна премия $7500, одна премия $5000, одна премия $3133.7, три премии $3000, две премии $1000 и четыре премии $500). Сумма не окончательная, так как размер одного из вознаграждений ещё не определён.