Компания Google выпустила новую версию браузера Chrome 39.0.2171.65 на стабильном канале для Windows, Mac и Linux. Браузер содержит ряд исправлений и улучшений. Самое главное из них — 64-битная версия под Mac. Она впервые появилась в версии Chrome 38 beta, а сейчас перешла и в основную ветку.
В отличие от Windows, где поддерживаются одновременно 32- и 64-битная версии (32-битная по умолчанию), для OS X сейчас выпускается только 64-битная версия. Все пользователи «маков» автоматически перейдут на неё, как только установят Chrome 39. Хотя об этом прямо не говорится, но похоже на то, что ранние 32-битные версии «маков» под Intel уже не смогут запускать последние версии браузера.
Как объяснялось раньше, 64-битная версия отличается повышенной производительностью, стабильностью и лучшей безопасностью. Она получает пользу от оптимизаций в последних процессорах и компиляторах, от более современного набора инструкций. В соответствии с ним, больше параметров функций быстро передаются через стек. В результате, повышается производительность, особенно в обработке графического и мультимедийного контента.
Кроме того, теперь автоматически прекращается поддержка 32-битных плагинов Netscape Plugin Application Programming Interface (NPAPI), хотя их 64-битные аналоги будут работать. Впрочем, отказ от поддержки 32-битных NPAPI планировался давно, так что ничего неожиданного здесь нет.
Если забыть об OS X, то в Chrome 39 для всех платформ реализованы некоторые новые функции, важные для веб-разработчиков. Вот какие из них считает основными сама Google:
- JavaScript генераторы: ES6 генераторы позволяют разработчикам создавать итераторы, которые приостанавливают своё выполнение при получении определённого значения и возобновляют работу при последующем вызове. Цель — упрощение создания кода асинхронных приложений, избавление от лишних callback’ов.
- Контроль воспроизведения Web Animation: базовая поддержка новых программных интерфейсов появилась в Chrome 36, а сейчас можно управлять медиапотоком, в том числе через методы play(), pause() и reverse(), суть которых понятна из названий. Реализована возможность перескакивать в конкретное место медиафайла.
- Манифесты веб-приложений: начиная с версии Chrome 39, поддерживаются manifest-файлы для веб-приложений. Вынести приложение на домашний экран так же просто, как указать отображаемое название, ориентацию экрана и разные типы иконок, в зависимости от размера и разрешения экрана.
- Интерфейсы Beacon API позволяют отправлять асинхронные сетевые запросы в зависимости от перехода пользователя на новую страницу.
- Параметры смещения прокрутки (scrollTop, scrollLeft) теперь возвращают точные значения с дробными величинами, в качестве подготовки к поддержке high-DPI.
- Прекращена поддержка свойств position и totalSize объекта XMLHttpRequest в пользу свойств loaded и total.
Внедрена поддержка нескольких новых программных интерфейсов для расширений и приложений. Для сертификатов c подписью SHA-1, срок действия которых истекает после 1 января 2017 года, в адресной строке теперь выводится предупреждающая метка «безопасен, но содержит незначительные проблемы». Появилась защита от атаки POODLE, когда атакующий принудительно откатывает HTTPS-соединение на уязвимый протокол SSLv3.
В новой версии Chrome исправлены 42 уязвимости в безопасности, из которых 11 имеют «высокий» уровень опасности. Максимальная сумма вознаграждения для нашедшего уязвимость составила $7500 за баг 423703. Впрочем, нескольким хакерам выплачена ещё большая сумма ($16 500) за то, что они обнаружили баги ещё до того, как те попали на стабильный канал Chrome.
Максимально полный список сделанных изменений приведён в этом логе.