Релиз 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)
-
- Web-страницы, открытые без шифрования по HTTP и содержащие формы ввода пароля («input type=password»), теперь помечаются как небезопасные. Для подобных страниц в адресной строке показывается специальный значок, сигнализирующий о том, что соединение небезопасно. Данная функция была добавлена в Firefox 44, но требовала включения опции security.insecure_password.ui.enabled в about: config, в Firefox 46 данная возможность включена по умолчанию;
- Проведена работа по усилению безопасности 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»), помимо самого объекта включающий и данные о размере других объектов, связанных через ссылки;
- В редакторе стилей в боковую панель правил »@media» добавлена возможность создания и отладки слоёв на базе отзывчивых изображений (Responsive Images, задание вариантов изображений, оптимизированных для различных экранных разрешений и уровня масштабирования);
- В инструменты для оценки производительности добавлен отчёт Allocations View, позволяющий выявить функции, потребляющие много памяти, и отследить появление пауз из-за операций выделения памяти и сборки мусора;
- Улучшения в версии для платформы Android:
- В меню добавлены элементы для обращения к истории посещений и закладккам;
- Прекращена поддержка платформы Android 3 (Honeycomb);
- В уведомлениях для открытых в фоне вкладок обеспечен показ URL;
- На устройствах с Android 6.0+ реализован вывод запроса полномочий при доступе к расширенным функциям в процессе выполнения приложения (ранее полномочия запрашивались только при установке);
- Обеспечен показ прокэшированных страниц, при попытке их открытия без наличия доступа в интернет;
- Увеличено разрешение пиктограмм ярлыков на домашнем экране;
- В качестве предлагаемых по умолчанию эскизов популярных сайтов теперь выводятся сайты, занимающие первые пять мест в рейтинге Alexa;
- Удалена поддержка Firefox Sync 1.1;
Как обычно следует отметить, что кроме новшеств и исправления ошибок в Firefox 46 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.
© OpenNet