Компания 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);
  • Организован вывод уведомлений через штатную систему нотификации 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-заголовок, вместо наследования правил, заданных в документе;

  • Для того чтобы не раздражать пользователя постоянными запросами, 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.

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

Источник

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here