Компания Google представила релиз web-браузера 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", получающие информацию об уведомлении от сервера, что создавало проблемы при одновременном поступлении нескольких сообщений или при сбое сетевого соединения. В новом выпуске задействована поддержка механизма "payload", определённого в 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).

Источник: http://www.opennet.ru/opennews/art.shtml?num=44241