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%;
Переход на GTK3+ в сборках для платформы GNU/Linux. Поддержка GTK2+ пока сохранена и поддерживается в полном объёме. Переход Firefox на GTK3+ является важным звеном в реализации работы на системах, поддерживающих протокол Wayland.
Для декодирования незашифрованного контента H.264 и AAC в случае отсутствия соответствующего кодека, в качестве запасного варианта может применяться CDM-модуль (Content Decryption Module), предназначенный для декодирования защищённого DRM-контента;
Увеличена плавность панорамирования и масштабирования 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, позволяющий выявить функции, потребляющие много памяти, и отследить появление пауз из-за операций выделения памяти и сборки мусора;
[свернуть]