Выпуск web-браузера Chrome 62
Компания Google представила релиз web-браузера Chrome 62. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищенного видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 62:
- Расширен спектр ситуаций при которых выводится сообщение о небезопасном соединении при обращении к сайтам по HTTP. Помимо уже выставляемой метки небезопасного соединения при заполнении форм ввода пароля и номеров кредитных карт, аналогичное предупреждение теперь будет выводиться при заполнении любых форм данных на страницах открытых по HTTP, а также при открытии сайтов по HTTP в режиме инкогнито;
- Возможность отключить звук для отдельных сайтов. Пользователь может на постоянной основе заблокировать вывод звука для конкретных сайтов, которые злоупотребляют автоматическим воспроизведением видео или раздражающими звуковыми эффектами;
- В настройки добавлена опция для включения режима обратной прокрутки, меняющего направление сдвига содержимого при прокрутке вращеним колеса мыши;
- В API Network Infomation добавлены метрики качества сетевого соединения, позволяющие оценить реальную пропускную способность текущего подключения и задержки в доставке пакетов, помимо ранее предоставляемых сведений о теоретической скорости сетевого интерфейса. Кроме того, предоставлены средства для постоянного отслеживания сетевой производительности и генерации уведомлений об изменении качества канала связи. Для упрощения информация о скорости привязана к классам сетевого подключения, например, 2G, 4G, WiFi и Ethernet (например, будет выставлен класс 2G, даже если фактическое соединение Ethernet, но наблюдаются большие задержки). С практической стороны, разработчики могут воспользоваться новым API для загрузки упрощенной версии сайта или отключения сервисов, требующих интенсивной передачи данных, в условиях медленного сетевого соединения;
- Добавлена поддержка изменчивых шрифтов OpenType (variable fonts), в которых толщина, ширина и другие стилистические характеристики глифа могут произвольно меняться. Вместо отдельного описания каждого представления, комбинации возможных вариантов определяются в одном шрифтовом ресурсе через определения возможных delta-отклонений от базового глифа с получением результата через применение интерполяции. Таким образом, вместо использования для каждого стиля своего файла со шрифтом, можно обойтись одним шрифтовым файлом, что значительно сокращает размер данных, необходимых для получения заданного результата. Управление параметрами отрисовки изменчивых шрифтов осуществляется при помощи CSS-свойств font-weight (теперь можно указывать не только класс, но и цифровые значения для толщины и стиля) и font-variation-settings (более тонкая настройка глифов);
- В API DOM Elements добавлено расширение Media Capture, позволяющее захватывать содержимое, отрисовываемое при помощи HTMLMediaElements (например, контент, выводимый через теги video и audio). Захват инициируется методом captureStream(), после чего мультимедийные данные передаются в форме MediaStream напрямую из HTMLMediaElements. В том числе возможна запись и отправка захваченного потока через WebRTC и обработка при помощи API WebAudio;
- Внесены новые оптимизации производительности в JavaScript-движок V8. До 6.5 раз увеличена скорость работы метода ObjecttoString(), что положительно сказалась на работе фреймворков, использующих ObjecttoString(), например, производительность AngularJS возросла примерно на 3% (по тесту Speedometer). Также до 3 3 раз ускорена работа метода Stringincludes(), до 5 раз someProxy(params) и SomeOtherProxy(params) и до 6.5 раз someProxy.property. Внесены оптимизации в работу Map, Set, WeakMap и WeakSet, позволившие ускорить работу с хэшами при использовании библиотеки Hashcode;
- Улучшена работа движка V8 на устройствах с небольшим объемом ОЗУ, для которых начальный размер буфера для объектов с коротким жизненным циклом уменьшен до 512K;
- Максимальный размер строк на 64-разрядных системах увеличен с 2^28 (256 Мб) до 2^30 символов (1 Гб);
- В движке разбора регулярных выражений по умолчанию включен режим dotAll при указании флага "s", при котором под маску "." подпадают в том числе символ перевода строки (/foo.bar/su.test('foo&92;nbar'); // true). Добавлен механизм оценки Lookbehind, позволяющий определить в регулярном выражении, что один шаблон предшествует другому (например, сопоставить сумму в долларах без захвата знака доллара);
- В API PaymentRequest для каждого метода платежей обеспечена возможность указания различных цен и элементов при помощи модификатора PaymentDetailsModifier.data;
- Добавлена поддержка html-элементов &8249;data&8250; и &8249;time&8250; для привязки значений для автоматического разбора и указания времени, например, " &8249;data value="8"&8250;Восемь &8249;/data&8250;" или " &8249;time&8250;2017-10-18 13:04&8249;/time&8250;";
- В парсер значений цветов в CSS добавлена поддержка 8- и 4-значных шестнадцатеричных форматов значений цвета (RRGGBBAA и RGBA);
- Добавлен "Origin Trial" для WebVR, что позволяет начать эксперименты с web-приложениями для виртуальной реальности;
- Расширен интерфейс загрузки файлов в Chrome для Android через формы &8249;input type="file"&8250;, обеспечена возможность выбора для загрузки сразу нескольких файлов, если через атрибут accept разрешена только загрузка изображений;
- В API MediaSource расширены средства перемещения по потоку при помощи метода HTMLMediaElement.seekable, благодаря новым API setLiveSeekableRange и clearLiveSeekableRange.
- В API Media Source Extensions (MSE) добавлена поддержка формата кодирования звука FLAC;
Кроме нововведений и исправления ошибок в новой версии устранено 35 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity и LibFuzzer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 20 премий на сумму более 40 тысяч долларов США (одна премия $7500, две премии $5000, пять премий $3000, одна премия $2000, три премии $1000, одна премия $1337 и три премии $500). Размер пяти вознаграждений пока не определен.