14.04.2016 в 10:01
Релиз Google Chrome 50
Компания Google представила релиз веб-браузера Google Chrome 50.
Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающий основой Chrome. Браузер Chrome отличается использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 50:
- В кодовую базу интегрированы наработки проекта ozone-wayland, в рамках которого развивался вариант web-браузера Chromium, предназначенный для работы в окружениях на базе Wayland. Работа поверх Wayland организована благодаря созданию адаптированного для работы с Wayland набора C++ классов Ozone, используемых в Chromium для абстрагирования вывода на различные оконные системы;
- В рамках инициативы по упрощению функциональности браузере в июле будет удалён интерфейс Apps Launcher, который останется только в Chrome OS. До июля интерфейс запуска web-приложения остаётся доступен через ссылку chrome://apps;
- В версии для платформы Android переработан интерфейс подключения к учётной записи Google, в том числе обновлены окна входа, подтверждения, обновления учётной записи и синхронизации настроек;
- Внесены улучшения в систему Push-уведомлений, при помощи которых сайт может инициировать вывод системного уведомления на экран пользователя. Если первая реализация Push-уведомлений была завязана на обработчики «service workers», что создавало проблемы при одновременном поступлении нескольких сообщений или при сбое сетевого соединения, то в новом выпуске задействован Push API, который уже поддерживается в Firefox и позволяет передавать связанные с уведомлением данные в push-сообщениях. Для защиты приватности уведомления должны передаваться в зашифрованном виде. Сайтам также предоставлена возможность контролировать, когда уведомление было закрыто пользователем, и передавать собственные пиктограммы для предлагаемых пользователю действий;
- В тег link добавлена поддержка атрибута rel=preload, управляющего упреждающей загрузкой контента (параметр «link rel=subresource» объявлен устаревшим). Через preload можно организовать загрузку ресурсов, не дожидаясь когда они будут запрошены, например, можно загрузить сразу все файлы CSS, которые вызываются из JavaScript. На нижеприведённом видео демонстрируются различия в скорости обработки страницы с preload и без.
- Сервисы определения местоположения (Geolocation API) теперь доступны только для защищённых соединений (если сайт открыт по HTTPS);
- Запрещён откат версии TLS, что блокирует атаки по переходу на устаревшие версии протокола. В TLS добавлена поддержка алгоритма Curve25519, предложенного Дэниэлом Бернштейном (D. J. Bernstein);
- Функция HTMLMediaElement.play() теперь возвращает объект Promise, что упрощает реагирование на сбой автоматического воспроизведения;
- Добавлена функция HTMLCanvasElement.toBlob(), предоставляющая средства для обработки элемента canvas в форме блоба;
- Добавлена возможность создания объектов ImageBitmap, которые можно быстро и асинхронно записать в элемент canvas;
- Через API AbsoluteDeviceOrientation предоставлена возможность доступа к информации об абсолютной ориентации устройства, в то время как DeviceOrientation возвращает относительные значения, полученные без использования магнитометра;
- В объект FormData, позволяющий программно генерировать данные для web-форм, добавлены средства инспектирования и изменения данных в web-формах;
- В регулярные выражения добавлена поддержка флага «u», а также символов @@match, @@replace, @@search и @@split для более полного управления процессом сопоставления;
- Предоставлена возможность управление буферизацией потоков звука и видео при помощи атрибута SourceBuffer.mode и опции sequence;
- Добавлена возможность отследить первый элемент на который укажет фокус в случае нажатии табуляции или shift-tab (если по умолчанию фокус не был установлен);
- Удалены свойства Document.defaultCharset и SVGElement.offset* (кроме HTMLElement), не определённые в спецификациях.
Кроме нововведений и исправления ошибок, в новой версии устранено 20 уязвимостей, многие из которых выявлены в результате автоматизированного тестирования инструментами AddressSanitizer и MemorySanitizer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 7 премий на сумму 17500 долларов США (по одной премии 7500$, 5000$ и 1000$, две премии 1500$ и две премии 500$).