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

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

  • Переход на GTK3+ в сборках для платформы GNU/Linux. Поддержка GTK2+ пока сохранена и поддерживается в полном объёме. Переход Firefox на GTK3+ является важным звеном в реализации работы на системах, поддерживающих протокол Wayland. В связи с переходом на GTK3+ наблюдается повышение качество работы на экранах с высоким разрешением и отдельные изменения внешнего вида, например, изменился фон контекстных меню, при запуске в Ubuntu.
    
    $ ldd libmozgtk.so |grep libgtk
    libgtk-3.so.0 => /usr/lib/i386-linux-gnu/libgtk-3.so.0 (0xb722c000)
  • Проведена работа по усилению безопасности JIT-компилятора JavaScript. Выполнение кода организовано с использованием применяемого в OpenBSD алгоритма W^X, суть которого в том, что страницы памяти не могут быть одновременно доступны на запись и исполнение. В контексте JIT, генерируемый код может быть исполнен только после запрещения записи. При необходимости сгенерировать обновлённый вариант, флаг исполнения меняется на флаг записи. Включение режима W^X приводит к замедлению работы JavaScript-движка на 1-4%;
  • Внесена большая порция изменений и исправлений в реализацию технологии WebRTC. Добавлена поддержка Simulcast, поддержка дуплексного режима при использовании PulseAudio, переписан код завершения соединения, добавлен вызов RTCRtpReceive, добавлены константы echoCancellation, mozAutoGainControl и mozNoiseSuppression, включена поддержка WebRTC в многопроцессном режиме;
  • Для декодирования незашифрованного контента H.264 и AAC в случае отсутствия соответствующего кодека, в качестве запасного варианта может применяться CDM-модуль (Content Decryption Module), предназначенный для декодирования защищённого DRM-контента.
  • Добавлен метод documents.elementsFromPoint, возвращающий массив элементов, находящихся в окне по указанным координатам;
  • Добавлена поддержка порции свойств с префиксом "-webkit-", например "-webkit-flexbox" и "-webkit-transforms";
  • Добавлена поддержка новых свойств, определённых в спецификации 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);
  • В about:config реализована опция network.dns.blockDotOnion, позволяющая заблокировать обращение к доменам .onion на уровне DNS, чтобы не афишировать случайное обращение к onion-узлам при подключении не через сеть Tor;
  • В инструмент отладки потребления памяти добавлен режим "Dominator view", отображающий косвенный размер объектов ("retained size"), помимо самого объекта включающий и данные о размере других объектов, связанных через ссылки;
  • В редакторе стилей в боковую панель правил "@media" добавлена возможность создания и отладки слоёв на базе отзывчивых изображений (Responsive Images, задание вариантов изображений, оптимизированных для различных экранных разрешений и уровня масштабирования);
  • В инструменты для оценки производительности добавлен отчёт Allocations View, позволяющий выявить функции, потребляющие много памяти, и отследить появление пауз из-за операций выделения памяти и сборки мусора;
  • Улучшения в версии для платформы Android:
    • В меню добавлены элементы для обращения к истории посещений и закладккам;
    • Прекращена поддержка платформы Android 3 (Honeycomb);
    • В уведомлениях для открытых в фоне вкладок обеспечен показ URL;
    • На устройствах с Android 6.0+ реализован вывод запроса полномочий при доступе к расширенным функциям в процессе выполнения приложения (ранее полномочия запрашивались только при установке);
    • Обеспечен показ прокэшированных страниц, при попытке их открытия без наличия доступа в интернет;
    • Увеличено разрешение пиктограмм ярлыков на домашнем экране;
    • В качестве предлагаемых по умолчанию эскизов популярных сайтов теперь выводятся сайты, занимающие первые пять мест в рейтинге Alexa;
    • Удалена поддержка Firefox Sync 1.1;

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

Источник: http://www.opennet.ru/opennews/art.shtml?num=44315