Выпуск web-браузера Chrome 61

Компания Google представила релиз web-браузера Chrome 61. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.

Основные изменения в Chrome 61:

  • Встроена поддержка модулей JavaScript, предоставляющих средства для определения зависимостей и загрузки только необходимых для работы компонентов. Для определения модулей используется тег «script» с флагом «type=module». Предоставляемая браузером поддержка модулей позволяет без привлечения дополнительных сборочных этапов организовать загрузку зависимостей, параллельно от основного контента, использовать расширенные методы кэширования, отсеивать дубликаты, обеспечить корректный порядок выполнения скриптов;
  • Добавлен API Web Share (объект navigator.share), предоставляющий средства для обмена информацией о контенте в социальных сетях. Новый API позволяет разместить на сайте кнопку для быстрой публикации ссылок на материал в социальных сервисах, которыми пользуется текущий посетитель. Таким образом вместо раздутого списка отдельных кнопок для каждой социальной сети и без загрузки виджетов социальных сетей появляется возможность разместить одну кнопку для публикации в актуальных для пользователя социальных сетях. На платформе Android нажатие такой унифицированной кнопки приведёт к открытию штатного диалога отправки ссылки в социальные сети и сервисы для которых на устройстве установлены мобильные приложения (в будущем ожидается поддержка отправки через web-приложения); 0_1504688443.png
  • Добавлен API WebUSB, позволяющий напрямую взаимодействовать со специализированными периферийными устройствами, подключаемыми через порт USB, для которых отсутствует штатная системная поддержка. WebUSB позволяет организовать работу с такими устройствами без установки в систему специализированных драйверов, благодаря предоставлению возможности прямого обращения к устройству из web-приложения (логика низкоуровневого взаимодействия задаётся в web-приложении, т.е. драйвер реализуется на JavaScript); 0_1504688546.png
  • С целью увеличения безопасности обеспечен автоматический выход из полноэкранного режима при открытии всплывающих диалогов на JavaScript. Из соображений безопасности также прекращена поддержка функции start () в Presentation API;
  • Добавлена опция «chrome://flags/#autoplay-policy» для настройки правил автоматического воспроизведения видео;
  • С целью экономии ресурсов и продления автономной работы прекращено декодирование через API Media Source кадров видеороликов, воспроизводимых в фоновых вкладках;
  • Владельцам сайтов представлена возможность указания HTTP-заголовка Clear-Site-Data для удаления оседающих в браузере сессионных данных, таких как cookies, service workers, БД storage API и записи в кэше;
  • Запрещено использование в URL символов возврата каретки (\n) и открывающейся угловой скобки;
  • Возможность использования API Payment Request обеспечена для всех редакций браузера, включая настольные версии для Windows, macOS, Linux и ChromeOS. Payment Request позволяет организовать быстрое совершение платежей при помощи кредитной карты, без необходимости повторного ручного ввода типовой информации, такой как данные о плательщике, номер карты (для подтверждения вводится CVC-код) и адрес доставки;
  • Добавлено CSS-свойство scroll-behavior для настройки плавности прокрутки;
  • Задаваемые в CSS шестнадцатеричные значения цветов теперь могут включать данные о прозрачности через добавление дополнительных цифр к коду с цветом (#RRGGBBAA и #RGBA);
  • Обеспечена возможность получения сведений об относительной позиции содержимого на экране через API Visual Viewport, что позволяет упростить обработку эффектов типа масштабирования щипком;
  • Активирован по умолчанию API Network Information, через который можно получить доступ к сведениям о текущем соединении (например, тип (cellular, bluetooth, ethernet, wifi) и скорость);
  • Представлен API Device RAM, через который можно узнать данные о размере памяти на текущем устройстве;
  • Предоставлена возможность получения ориентировочного значения дискового пространства, использованного для хранения данных текущего сайта, а также значения предоставленной дисковой квоты. Данные предоставляются в Storage API через функцию navigator.storage.estimate ();
  • Конструктор URLSearchParams расширен возможностью обработки любых объектов для разбора параметров запроса (ранее поддерживались только объекты URLSearchParams). Добавлена поддержка вывода результатов разбора параметров в отсортированном виде;
  • Добавлена поддержка HTTP-заголовка Expect-CT c SCT-параметрами (SignedCertificate Timestamps) для выявления некорректных SSL-сертификатов при помощи системы Certificate Transparency;
  • Обеспечено автоматическое раскрытие видео на весь экран при смене ориентации мобильного устройства на ландшафтный режим во время воспроизведения видео;
  • В инструменты для разработчиков добавлена кнопка для сохранения профиля измерения производительности;
  • В диалоге предпросмотра перед выводом на печать обеспечено автоматическое определение принтеров, предоставляемых системой CUPS;
  • Добавлены новые параметры для управления заполнением заголовка Referrer (Referrer Policy): same-origin (заполнять только для того же домена), strict-origin (всегда отправлять обрезанным) и strict-origin-when-cross-origin (отправлять обрезанным на другие хосты);
  • В соответствии с требованиями спецификации максимальное значение параметра colSpan уменьшено с 8190 до 1000;
  • Добавлена возможность задания ограничений на загрузку ресурсов, открываемых в iframe, через новый атрибут csp в теге iframe, определяющий правила Content Security Policy;
  • Добавлена возможность применения метода getAttributeNames () для прямого обхода коллекции атрибутов;
  • Активирована валидация и компиляция кода asm.js в промежуточное представление WebAssembly. Дополнительная стадия проверки немного замедляет запуск, но зато производительность выполнения кода как правило выше.
  • Производительность операций Maps и Sets при использовании итераторов или вызове через Map/Set.prototype.forEach возросла до 11 раз, по сравнению с выпуском V8 6.0; 0_1501916249.png
  • Обеспечено inline-развёртывание и оптимизация операций Array.prototype.forEach;
  • Выполнение кода распаковки архива с дополнением вынесено в отдельный фоновый поток, чтобы исключить блокировку основного потока;
  • Существенно возросла производительность вызова функций и конструкторов с переменным числом аргументов, например, Reflect.apply и Reflect.construct теперь выполняются до 17 раз быстрее; 0_1501916561.png
  • Добавлена встроенная аркадная игра «chrome://dino»;
  • В секцию информации о странице (Рage Info) добавлена ссылка на новый интерфейс для просмотра содержимого SSL-сертификатов (для активации следует выставить флаг «chrome://flags/#show-cert-link»);
  • Добавлены вшитые URL со страницами уведомлений о фишинге и вредоносной активности — chrome://safe-browsing/match? type=malware, chrome://safe-browsing/match? type=phishing и chrome://safe-browsing/match? type=unwanted, которые можно использовать для тестирования; 0_1504683202.png
  • В версии для платформы Android представлен улучшенный интерфейс выбора загружаемых на сайты изображений и компактный вариант панели для перевода текста;
  • Представлена новая подборка типовых аватаров для учётных записей.

Кроме нововведений и исправления ошибок в новой версии устранено 22 уязвимости. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity и LibFuzzer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 10 премий на сумму 23.5 тысячи долларов США (три премии $5000, две премии $1000 и по одной премии $3500 и $3000). Размер трёх вознаграждений пока не определён.

© OpenNet