Релиз Firefox 46, перешедший на GTK3+ в Linux

Состоялся web-браузера Firefox 46, а также мобильной версии Firefox 46 для платформы Android. Выпуск отнесён к категории веток с длительным сроком поддержки (ESR), обновления для которых выпускаются в течение года. В ближайшие часы ожидается обновление прошлых веток с длительным сроком поддержки Firefox 38.8.0 и 35.1, а также пакета SeaMonkey 2.41. В скором времени на стадию бета-тестирования перейдёт ветка Firefox 47 и будет отделён Firefox Developer Edition 48. В соответствии с шестинедельным циклом разработки релиз Firefox 47 намечен на 7 июня, а Firefox 48 на 2 августа.

Основные новшества:

  • Переход на GTK3+ в сборках для платформы GNU/Linux. Поддержка GTK2+ пока сохранена и поддерживается в полном объёме. Переход Firefox на GTK3+ является важным звеном в реализации работы на системах, поддерживающих протокол Wayland. В связи с переходом наблюдается отдельные изменения внешнего вида, например, изменился фон контекстных меню, при запуске в Ubuntu.
         $ ldd libmozgtk.so |grep libgtk     libgtk-3.so.0 => /usr/lib/i386-linux-gnu/libgtk-3.so.0 (0xb722c000)
  • 0_1461686560.png
    • Web-страницы, открытые без шифрования по HTTP и содержащие формы ввода пароля («input type=password»), теперь помечаются как небезопасные. Для подобных страниц в адресной строке показывается специальный значок, сигнализирующий о том, что соединение небезопасно. Данная функция была добавлена в Firefox 44, но требовала включения опции security.insecure_password.ui.enabled в about: config, в Firefox 46 данная возможность включена по умолчанию; 0_1461686603.png
    • Проведена работа по усилению безопасности JIT-компилятора JavaScript. Выполнение кода организовано с использованием применяемого в OpenBSD алгоритма W^X, суть которого в том, что страницы памяти не могут быть одновременно доступны на запись и исполнение. В контексте JIT, генерируемый код может быть исполнен только после запрещения записи. При необходимости сгенерировать обновлённый вариант, флаг исполнения меняется на флаг записи. Включение режима W^X приводит к замедлению работы JavaScript-движка на 1–4%;
    • Увеличена плавность панорамирования и масштабирования web-контента;
    • Внесена большая порция изменений и исправлений в реализацию технологии WebRTC. Добавлена поддержка Simulcast, поддержка дуплексного режима при использовании PulseAudio, переписан код завершения соединения, добавлен вызов RTCRtpReceive, добавлены константы echoCancellation, mozAutoGainControl и mozNoiseSuppression, включена поддержка WebRTC в многопроцессном режиме;
    • Добавлен метод documents.elementsFromPoint, возвращающий массив элементов, находящихся в окне по указанным координатам;
    • Добавлена поддержка порции свойств с префиксом »-webkit»;
    • Добавлена поддержка новых свойств, определённых в спецификации ECMAScript 6: флаг определения unicode-последовательностей в RegExp, функций блочного уровня, метод TypedArray.prototype.sort (), выражение arguments[@@iterator];
    • Представлен экспериментальный EcmaScript Shared Memory API с реализацией типа SharedArrayBuffer, позволяющего создавать массивы в разделяемой памяти, и объекта Atomics для организации синхронизации блокировок примитивов;
    • Реализован OffscreenCanvas API с конструктором OffscreenCanvas (), позволяющим организовать отрисовку через WebGL в отдельном потоке, не мешающем работе основного потока обработки контента;
    • Реализация расширения WEBGL_compressed_texture_es3 с поддержкой сжатых текстур в формате ETC;
    • В Web workers добавлена поддержка асинхронного чтения файлов при помощи объекта FileReader;
    • В Web Crypto API добавлена поддержка формирования ключей с использованием HKDF (HMAC-based Extract-and-Expand Key Derivation Function);
    • В инструмент отладки потребления памяти добавлен режим «Dominator view», отображающий косвенный размер объектов («retained size»), помимо самого объекта включающий и данные о размере других объектов, связанных через ссылки; 0_1458056426.png
    • В редакторе стилей в боковую панель правил »@media» добавлена возможность создания и отладки слоёв на базе отзывчивых изображений (Responsive Images, задание вариантов изображений, оптимизированных для различных экранных разрешений и уровня масштабирования); 0_1454271516.png
    • В инструменты для оценки производительности добавлен отчёт Allocations View, позволяющий выявить функции, потребляющие много памяти, и отследить появление пауз из-за операций выделения памяти и сборки мусора;
    • Улучшения в версии для платформы Android:
      • В меню добавлены элементы для обращения к истории посещений и закладккам;
      • Прекращена поддержка платформы Android 3 (Honeycomb);
      • В уведомлениях для открытых в фоне вкладок обеспечен показ URL;
      • На устройствах с Android 6.0+ реализован вывод запроса полномочий при доступе к расширенным функциям в процессе выполнения приложения (ранее полномочия запрашивались только при установке);
      • Обеспечен показ прокэшированных страниц, при попытке их открытия без наличия доступа в интернет; 0_1458057859.png
      • Увеличено разрешение пиктограмм ярлыков на домашнем экране;
      • В качестве предлагаемых по умолчанию эскизов популярных сайтов теперь выводятся сайты, занимающие первые пять мест в рейтинге Alexa;
      • Удалена поддержка Firefox Sync 1.1;

Как обычно следует отметить, что кроме новшеств и исправления ошибок в Firefox 46 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.

© OpenNet