Релиз web-браузера Chrome 47
Компания Google представила релиз web-браузера Chrome 47. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающий основой Chrome. Браузер Chrome отличается использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 47:
- Средства для организации совместной многозадачности через применение вызова requestIdleCallback (). Зарегистрированные через вызов requestIdleCallback () функции будут выполнены только во время простоя системы, что позволяет решить проблемы с координацией выполнения в условиях повышенных требований к производительности одного из потоков. Например, запущенные через requestIdleCallback () второстепенные работы не смогут негативно повлиять на скорость внеплановой отрисовки во время прокрутки содержимого экрана.
- В версии для платформы Android реализована возможность отображения заставки во время загрузки web-приложения. На заставке можно вывести полезную пользователю информацию или просто сгладить задержку в несколько секунд, которая может возникнуть при запуске на недостаточно мощных мобильных устройствах. Заставка показывается автоматически при открытии web-приложения с домашнего экрана, охватывая также время запуска браузера, и отключается при начале вывода со стороны приложения. Через внесения изменения в манифест приложения разработчики могут на свой вкус настроить цвет, имя и пиктограмму заставки.
- Возможность ограничения времени показа уведомления на рабочем столе. Разработчик может определить какое время уведомление должно находиться на экране, после чего уведомление автоматически будет скрыто, что полезно для уведомлений, которые теряют смысл, если они не прочитаны сразу после отправки. Для уведомлений, которые должны быть показаны до тех пор пока их не закроет пользователь, следует установить флаг NotificationOptions.requireInteraction.
- Удалён старый центр вывода уведомлений, на смену которому пришла возможность бесшовного вывода уведомлений на рабочий стол;
- Добавлен метод Array.prototype.includes (), предоставляющий упрощённый синтаксис для проверки наличия элементов в массиве (например, проверка наличия двойки среди элементов массива — [1, 2, 3].includes (2));
- Новый rest-синтаксис определения параметров функции, позволяющий передавать произвольное число аргументов через массив;
- Новый метод Cache.matchAll () для пакетного поиска в кэше всех совпадений по маске;
- Атрибут RequestInit.referrer, указывающий, что все захватываемые через service worker запросы должны соответствовать значению изначального Referrer-а;
- Новый интерфейс Navigator.MediaDevices, предоставляющий разработчикам средства для перебора подключенных мультимедийных устройств;
- Метод MouseEvent.getModifierState (), предоставляющий дополнительные возможности в обработке событий ввода. Метод позволяет одновременно охватить события MouseEvent и KeyboardEvent, например, можно получить данные о кнопках на клавиатуре, которые были нажаты в момент поступления события от мыши;
- Вызовы UIEvent.sourceCapabilities и InputDeviceCapabilities.firesTouchEvents, позволяющие получить более полные сведения о возможностях устройств ввода;
- Экспериментальный упрощённый полноэкранный интерфейс, позволяющий автоматически перейти к выводу на полный экран — вместо предварительного запроса пользователя, выводится наглядное уведомление о возможности выхода из полноэкранного режима. Возможность можно включить опцией chrome://flags/#simplified-fullscreen-ui;
- Оптимизировано отображение заголовков на вкладках — при большом числе открытых вкладок на неактивных вкладках текст замещает собой значок закрытия вкладки;
Кроме нововведений и исправления ошибок, в новой версии устранена 41 уязвимость, в том числе критическая проблема (CVE-2015–6765, Use-after-free в AppCache), которая позволяет обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer и MemorySanitizer. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 23 премии на сумму почти 106 тысяч долларов США (одна премия $11337, две $10000, пять $7500, две $5000 и т.п.).
© OpenNet