Компания Google представила релиз web-браузера Chrome 39. Браузер построен на кодовой базе свободного проекта Chromium и отличается использованием логотипов Google, идущим в комплекте модулем Flash, встроенной поддержкой формата PDF, наличием системы отправки уведомлений в случае краха, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
- Воплощён в жизнь первый этап плана по прекращению доверия к сертификатам, подписанным с применением SHA-1. Сертификаты c подписью SHA-1, срок действия которых истекает после 1 января 2017 года, пока продолжают восприниматься как валидные, но для них в адресной строке обеспечен вывод специальной предупреждающей метки "безопасен, но содержит незначительные проблемы".
- Поддержка 64-разрядных сборок для OS X;
- Добавлена поддержка генераторов, определённых в спецификации ECMAScript 6 и позволяющих организовать эффективное выполнение функций в асинхронном режиме. Генераторы представляют собой специальные функции, генерирующие итераторы. Использование выражения yield для генератора, позволяет приостановить его выполнение и вернуть управление вызвавшей генератор функции. Особенность генераторов состоит в том, что последующие вызовы будут использовать предыдущее состояние и продолжат выполнение кода генератора с того места, где он был приостановлен.
- Добавлены средства для управления воспроизведением web-анимации (Web Animations API) при помощи новых методов play(), pause() и reverse(). Кроме того, теперь возможно перейти к произвольной точке на шкале времени;
- Добавлена возможность определения в одном Manifest-файле метаданных о web-приложении, что позволяет избежать дублирование информации в тегах "meta" на каждой странице. Например, при желании обеспечить размещение приложения на домашнем экране разработчик может создать файл manifest.json и указать в нём заголовок, открываемую страницу, ориентацию экрана и набор пиктограмм в привязке к параметрам экрана;
- Добавлен Beacon API, позволяющий добавить данные в очередь немедленной отправки и сразу вернуть управление, без негативного влияния на скорость навигации. Например, метод navigator.sendBeacon() полезно использовать для организации отправки статистики и логов, не дожидаясь ответа сервера.
- Параметры смещения прокрутки (scrollTop, scrollLeft) теперь возвращаются в виде значений повышенной точности (подготовка к поддержке high-DPI);
- Свойства position и totalSize объекта XMLHttpRequest объявлены устаревшими, вместо них для контроля прогресса выполнения операции следует использовать свойства loaded и total.
Кроме нововведений и исправления ошибок, в новой версии устранено 42 уязвимости, из которых большинство выявлены в результате автоматизированного тестирования инструментами AddressSanitizer и MemorySanitizer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 12 премий на сумму 25 тыс. долларов США (одна премия $7500, одна $5000, одна $3000, две $2000, одна $1500, две $1000, четыре $500), плюс четырём исследователям, способствовавшим повышению безопасности браузера, выплачена дополнительная премия в размере $16500.