Доступен релиз web-браузера Firefox 50, а также мобильной версии Firefox 50 для платформы Android. В ближайшие часы ожидается обновление прошлой ветки с длительным сроком поддержки 45.5. Выпуск SeaMonkey в очередной раз пропущен. В скором времени на стадию бета-тестирования перейдёт ветка Firefox 51 и будет отделён Firefox Developer Edition 52. В соответствии с шестинедельным циклом разработки релиз Firefox 51 намечен на 24 января, а Firefox 52 на 7 марта.

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

  • В интерфейс поиска на странице добавлен режим поиска с совпадением только слов целиком;
  • Добавлена настройка, позволяющая использовать клавиатурную комбинацию Ctrl+Tab для цикличного обхода вкладок в порядке обращения к ним. По умолчанию вкладки перебираются в порядке следования в строке;
  • В режим читателя (Reader Mode) добавлена возможность вывода на печать;
  • Увеличена производительность расширений SDK и расширений, использующих загрузчик модулей SDK. Для конфигураций без дополнений внесённые изменения позволили ускорить запуск браузера на 35%. При использовании дополнений выигрыш более значителен;
  • В браузер встроен набор пиктограмм Emoji, который не требует наличия в системе специальных шрифтов и может применяться в Linux;
  • Многопроцессный режим включен для систем с проверенными дополнениями, а позднее будет активирован для систем с любыми дополнениями;
  • В список доверительных корневых сертификатов добавлен сертификат контролируемого сообществом удостоверяющего центра Let’s Encrypt;
  • В состав вошли наработки инициативы по переносу из Tor Browser некоторых возможностей, которые позволяют усилить защиту персональной информации и блокировать возможности, способствующие идентификации пользователя по косвенным признакам. В частности, добавлена возможность удаления опции "open with" из диалога загрузки файлов, для которой следует изменить значение параметра "browser.download.forbid_open_with" в about:config. Опции для блокирования перебора плагинов и mime-типов, отключения вывода данных о параметрах экрана через API screen.orientation не вошли в состав выпуска Firefox 50;
  • Добавлена защита от загрузки различных типов исполняемых файлов для Windows, macOS и Linux;
  • В Windows и macOS добавлена возможность просмотра защищённого видео в формате WebM через CDM-модуль (Content Decryption Module) Widevine без необходимости установки дополнительных плагинов;
  • Расширен охват WebGL, который теперь доступен для 98% пользователей Windows 7 и более новых версий;
  • Заблокировано использование устаревших выпусков libavcodec (старее 54.35.1);
  • Продолжено усовершенствование API WebExtensions для разработки дополнений, совместимых с браузером Chrome. Из новых программных интерфейсов отмечается расширение API для работы с историей посещений, в webNavigation API добавлен фильтр событий, реализованы полноценные средства для отладки дополнений через интерфейс about:debugging;
  • Для обеспечения совместимости с завязанными на WebKit мобильными приложениями для тега input добавлена поддержка атрибута webkitdirectory и свойства HTMLInputElement.webkitDirectory, через которые можно установить флаг, разрешающий выбирать только директории;
  • Прекращена поддержка нестандартных псевдоклассов ":-moz-full-screen-ancestor" и CSS-свойства "box-sizing: padding-box". Снят префикс "-moz-" с псевдокласса ":any-link";
  • Реализовано JavaScript-свойство Symbol.hasInstance, определённое в спецификации ES2015;
  • Реализован JavaScript-метод Object.getOwnPropertyDescriptors(), определённый в спецификации ES2017;
  • Добавлено расширение WebGL EXT_shader_texture_lod;
  • По умолчанию отключена поддержка протокола SPDY, на смену которому пришёл HTTP/2.0;
  • Добавлена поддержка HTTP-заголовка "X-Content-Type-Options: nosniff", который выдаётся сервером для запрета сниффинга MIME-типов, заявленных в заголовке Content-Type;
  • В HTTP-заголовок Set-Cookie добавлена поддержка служебных префиксов "__Host-" и "__Secure-";
  • Добавлена поддержка HTTP-заголовка Referrer-Policy, через который можно определить какие данные, возвращать через заголовок Referer;
  • В Content Security Policy (CSP) представлена директива sandbox, через которую можно включить такие ограничения, как запрет всплывающих окон, использования плагинов и запуска внешних или всех скриптов;
  • В Drag and Drop API представлено свойство DataTransfer.items, позволяющее организовать перетаскивание группы элементов. Поддержка устаревших событий dragdrop и draggesture прекращена;
  • Избавлен от префикса API Pointer Lock, позволяющий создателям игр получить более полный контроль над мышью, в частности скрыть штатный указатель мыши и обеспечить собственную обработку перемещения мыши, теперь применим не только к полноэкранным сеансам. По аналогии с fullscreen API применение API Pointer Lock теперь не требует явного разрешения от пользователя, но после активации выводится предупреждение позволяющее отклонить операцию;
  • Реализовано подмножество API File and Directory Entries, которое можно использовать для доступа к содержимому локальных директорий. При использовании FileSystem API запрашивается подтверждение от пользователя;
  • Прекращено урезание интенсивности генерации событий таймеров Window.setInterval() и Window.setTimeout() для вкладок, в которых задействован Web Audio API AudioContext. Подобное изменение позволит решить проблемы с работающими в фоне музыкальными web-плеерами;
  • Прекращена поддержка свойства navigator.battery, которое могло применяться злоумышленниками для выделения пользователя в общем потоке через оценку уровня заряда аккумулятора;
  • В консоли для web-разработчиков появилась поддержка формата Source Map, позволяющего сопоставить объединённый в один файл JavaScript-код c оригинальными файлами, из которых он был сформирован. Source Map в web-консоли пока отключен по умолчанию (включается через devtools.sourcemap.locations.enabled в about:config), но при включении каждое сообщение дополнительно снабжается ссылкой на файл-источник и строку кода;
  • В web-консоли включено отображение стека трассировки сетевых запросов;
  • Включён по умолчанию инструмент инспектирования потребления памяти, позволяющий создавать слепки распределения памяти в разные моменты работы web-приложения. Инструмент удобен для поиска и исправления утечек памяти;
  • В инструмент для мониторинга сетевой активности добавлен столбец "Cause", в котором приводится информация о том, как сетевой запрос был инициирован, его типе и трассировке стека предшествующих ему операций;
  • Обновлён интерфейс для просмотра данных в формате JSON (JSON Viewer). Пустые массивы теперь показываются как "[]" вместо "[0]" по аналогии с пустыми объектами ("{}"), для свойств объектов добавлено отображение разделителей столбцов;
  • В интерфейсе инспектирования хранилища (Storage Inspector) добавлена возможность удаления элементов indexedDB из контекстного меню;
  • На странице about:debugging#workers, предоставляющей средства управления зарегистрированными Service Workers, добавлено отображение подписок на push-уведомления и возможность отправки тестовых уведомлений;
  • Обновлены пиктограммы в средствах для разработчиков;

    Было:

    Стало:

  • При отладке кода WebAssembly появилась подсветка синтаксиса;
  • В выпуске для платформы Android выполнено перемещение недавно закрытых вкладок в панель работы с историей посещений и добавлена возможность отображения потокового видео в формате HLS (HTTP Live Streaming);

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

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