Выпуск web-браузера Chrome 59
6 июня 2017 года
Компания Google представила релиз web-браузера Chrome 59. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 59:
- Для платформы Linux сборка по умолчанию теперь осуществляется с использованием библиотеки GTK3+, что значительно улучшило сочетаемость браузера с темами оформления современных дистрибутивов на основе GTK3+. Например, в интерфейсе теперь корректно применяются цветовые схемы, используются более современные системные виджеты, корректно оформляются контекстные меню и всплывающие диалоги;
- Представлено новое оформление раздела настроек, в котором задействован стиль Material Design. Новый интерфейс примечателен более широкой и заметной строкой поиска, новыми пиктограммами в меню в левой части экрана, слиянием секций "Sign In" и "People", упрощением раздела настройки контента и переименованием ряда секций ("Search" переименован в "Search Engine", "Privacy" в "Privacy and Security"). Настройки работы через прокси перемещены в секцию "System", настройки размеров шрифта и масштабирования в секцию "Appearance", а настройки сертификатов HTTPS в "Privacy and Security";
- В JavaScript-движке V8 задействована новая упрощённая схема компиляции, основанная на применении интерпретатора Ignition и JIT-компилятора Turbofan. Ранее в V8 использовался достаточно сложный многоуровневый процесс компиляции JavaScript, в котором одноразовый код интерпретировался на первой стадии, после чего генерировался машинный код для JIT, который периодически обновлялся и улучшался двумя оптимизирующими JIT-компиляторами. Новая схема подразумевает применение на первой стадии нового быстрого интерпретатора с байткодом и подключения по мере выполнения кода JIT-компилятора Turbofan.
Таким образом, полностью исключена фаза упреждающей генерации неоптимизированного машинного кода JIT-компилятром FullCodegen, а также удалены привязки к старому JIT-компилятору Crankshaft и лишняя логика разветвлений. Вместо машинного кода интерпретатор Ignition использует байткод, выполняемый в регистровой виртуальной машине, который требует в 2-4 раза меньше памяти, а по скорости выполнения в реальных приложениях этот байткод очень близок к неоптимизированному машинному коду. Задействование по умолчанию новой схемы привело к повышению производительности выполнения JavaScript-приложений и снижению потребления памяти;
- Добавлен режим работы без вывода на экран (headless), который позволяет запускать браузер на системах без монитора и графической подсистемы, например, на серверах. Режим активируется через запуск с опцией "--headless". В качестве областей применения называется автоматизированное тестирование при помощи Selenium и возможность автоматизированной обработки страниц с использованием полноценной платформы Chromium, например, можно загрузить страницу, извлечь нужные элементы DOM и сохранить результат в виде картинки (или PDF). Для управления предлагается использовать протокол удалённой отладки ( RemoteDebug);
- Добавлена экспериментальная страница со всеми внутренними настройками (chrome://prefs-internals);
- В экспериментальном режиме (включается в chrome://flags/#enable-md-extensions) представлено новое оформление интерфейса управления дополнениями, приведённое в соответствие с концепцией Material Design;
- Организован вывод уведомлений через штатную систему нотификации macOS, вместо вывода уведомлений в браузере;
- В Service Worker добавлен новый API Navigation Preload, позволяющий организовать упреждающее выполнение навигационных запросов во время запуска Service worker, сведя к минимуму ожидание загрузки элементов навигации;
- Добавлено свойство MediaError.message для извлечения детальной информации об ошибке, возникшей в процессе воспроизведения мультимедийного контейнта в тегах audio и video;
- Streams API расширен функциями WritableStreams, предоставляющими дополнительный уровень абстракции для организации записи потоковых данных в канал, имеющий встроенные средства ограничения потока. Также добавлена возможность создания неименованных каналов (pipe) между ReadableStreams и WritableStreams через использование методов pipeTo() и pipeThrough();
- Разработчикам предоставлена возможность применения функции getInstalledRelatedApps для консолидации push-уведомлений между web-страницей и приложениями;
- В API Image Capture добавлены средства для создания снимков высокого разрешения и полного управления настройками камеры, такими как коэффициент увеличения, ISO и баланс белого;
- Для CSS-файлов теперь можно определять отдельные правила обработки
Referrer через HTTP-заголовок Referrer-Policy, вместо наследования правил, заданных в документе;
- Для того чтобы не раздражать пользователя постоянными запросами, Chrome теперь автоматически временно (на одну неделю) блокирует запросы на подтверждение операций, в случае если пользователь уже три раза отклонил этот запрос;
- Добавлена новая CSP (Content Security Policy) директива worker-src, позволяющая ограничить URL только загрузкой Worker, SharedWorker или ServiceWorker;
- Запрещён вывод запросов для предоставления полномочий на вывод уведомлений, отправленных без шифрования по HTTP;
- Для повышения защиты обеспечено блокирование запросов к ресурсам, которые содержат встроенные параметры аутентификации. Подобные запросы теперь приводят к выводу ошибки;
- Обеспечено блокирование запросов к URL "ftp://" из документов, открытых по HTTP и HTTPS;
- Переведена в разряд устаревших возможность вызова Notification.requestPermission() из не первичных фреймов;
- Временно отключена по умолчанию поддержка расширения SDCH (Shared Dictionary Compression over HTTP), до стандартизации стабильного API.
- Добавлена поддержка формата APNG, позволяющего создавать анимированные PNG-изображения с 24-разрядной глубиной цвета и дополнительными 8 битами на прозрачность. APNG обратно совместим с PNG (первый кадр анимации представляет собой обычный PNG, поэтому если декодировщик не поддерживает расширения для анимации, то будет показано статическое изображение).
Кроме нововведений и исправления ошибок в новой версии устранено 30 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity (Архивная копия от 28 октября 2020 на Wayback Machine) и LibFuzzer (Архивная копия от 28 октября 2020 на Wayback Machine). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 16 премий на сумму 23.5 тысяч долларов США (одна премия $7500, две премии $3000, , две премии $2000, пять премий $1000 и две премии $500). Размер четырёх вознаграждений пока не определён.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.