Проект Mozilla представил релиз web-браузера Firefox 38, а также мобильную версию Firefox 38 для платформы Android. В ближайшие часы ожидается обновление веток с длительным сроком поддержки Firefox 31.7.0 и Thunderbird 38.0, а также выпуск пакета Seamonkey 2.34. В скором времени на стадию бета-тестирования перейдёт ветка Firefox 39 и будет отделён Firefox Developer Edition 40, который пришел на смену ветке aurora. В соответствии с шестинедельным циклом разработки релиз Firefox 39 намечен на 30 июня, а Firefox 40 на 11 августа.
Основные новшества:
Поддержка API Encrypted Media Extensions, развиваемого организацией W3C и реализующего элементы поддержки DRM (Digital Rights Management) для организации защиты от копирования видеоконтента, встраиваемого в web-страницы через HTML5-теги video и audio. Декодирование DRM-контента осуществляется через отдельно устанавливаемый проприетарный модуль Adobe Primetime CDM (Content Decryption Module), который загружается автоматически при возникновении необходимости в отображении зашифрованного контента. CDM-модуль запускается в отдельном sandbox-контейнере, изолированном от остальной части браузера. При желании CDM-модуль можно отключить или удалить: в интерфейсе управления плагинами можно отключить плагин Adobe Primetime DRM или в настройках "Content" снять метку с пункта "Play DRM content". В случае применения модуля пользователю выводится уведомление.
Поставка по умолчанию новой реализации системы настройки. Вместо традиционного диалога с достаточно запутанным распределением настроек, новый интерфейс оформлен по аналогии с менеджером дополнений. Настройки более явно распределены по категориям и вместо диалогового окна отображаются в отдельной вкладке в основном окне браузера. Отказ от отдельного диалогового окна даёт возможность унифицировать интерфейс настройки для разных типов устройств и операционных систем, так как конфигуратор отображается во вкладке по аналогии с обычными web-страницами.
При перезапуске после обновления обеспечен вывод диалога, предлагающего подтвердить легитимность установленных дополнений. В списке явно выделены дополнения установленные автоматически без спроса пользователя, что позволяет избавиться от давно не используемых и непрошенных дополнений, замедляющих работу браузера и негативно влияющих на стабильность.
В WebRTC обеспечена поддержка передачи нескольких однотипных потоков данных в рамках одного соединения (multistream PeerConnection) и возможность повторного согласования соединения (возможность добавлять/удалять потоки данных для уже установленного соединения). Например, в процессе видеосвязи через уже установленное соединение может быть передан дополнительный поток для совместного доступа к экрану;
Реализован BroadcastChannel API, позволяющий организовать простой обмен сообщениями между разными контекстами в браузере, привязанными к одному сайту. Например, можно организовать взаимодействие разных окон, вкладок и блоков iframe, в которых осуществляется работа с одним и тем же сайтом, что может быть использовано для обеспечения работы многооконных web-приложений;
Поддержка руби-анотации при отображении символов (уточняющие символы, выводимые над иероглифами);
Прекращена поддержка свойства autocomplete=off в полях с именами пользователя и паролями;
Изменено поведение парсера URL, который теперь не производит кодирование и декодирование с символами процента при установке или получении фрагмента URL;
При указании пустого регулярного выражения в RegExp.prototype.source теперь возвращается не пустая строка, а значение "(?:)";
Сокращено время загрузки страниц за счёт упреждающего "прогрева" сетевого соединения;
Реализована технология отзывчивых изображений (Responsive Images), дающая возможность определить через атрибут "srcset" тега "img src" серию вариантов изображений, оптимизированных для различных типов устройств, экранных разрешений и уровня масштабирования;
WebSocket теперь доступен в многопоточных обработчиках Web Workers;
Для типизированных массивов в объект Array добавлены методы of(), from(), forEach(), filter(), map() и slice();
Добавлена поддержка DOM3-событий KeyboardEvent.code, позволяющих получить информацию о сканкоде нажатой клавиши, определяющего физическое состояние клавиши без учёта нажатия модификаторов и выбранной раскладки клавиатуры;
Для сборки и тестирования дополнений в Add-on SDK задействован новый инструментарий JPM, который заменит собой CFX, написанный на языке Python. JPM поддерживает пакеты NPM, написан на JavaScript и использует в работе Node.js.
В интерфейсе отладки обеспечена видимость оптимизированных переменных;
В web-консоль добавлена команда copy.
В web-консоли специальными метками визуально выделены и могут быть отфильтрованы записи, связанные с запросами XMLHttpRequest;
В версии для платформы Android проведена модернизация интерфейса пользователя: реализован новый приветственный экран ("Welcome Screen"), добавлены элементы управления просмотром в режиме читателя (Reader), представлено новое оформление панели синхронизации вкладок, добавлена возможность "Add to Firefox". Коме того, обеспечена поддержка темы оформления Android L и добавлена опция 'Send to device' для отправки вкладки на сопряжённое устройство.
Как обычно следует отметить, что кроме новшеств и исправления ошибок в Firefox 38 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.