Тестирование Firefox 51-beta и Firefox Developer Edition 52

Firefox 51 перешёл на стадию бета-тестирования, что ознаменовало прекращение формирования базовой функциональности и сосредоточение всего внимания на выявлении ошибок и контроле качества. Кроме того сформирован выпуск Firefox Developer Edition 52, который заменил собой aurora-ветку, в рамках которой проводится оценка готовности тех или иных новшеств для последующего бета-выпуска. Загрузить бета-выпуск можно на данной странице, а Firefox Developer Edition здесь. Релиз Firefox 51 намечен на 24 января, а Firefox 52 на 7 марта.

Изменения, представленные в бета-версии Firefox 51:

  • Добавлена встроенная поддержка звукового кодека FLAC (Free Lossless Audio Codec), развиваемого сообществом Xiph.Org и обеспечивающего уровень сжатия звукового потока в 50–60% без потери качества (lossless). FLAC поддерживается в контейнерах FLAC и Ogg;
  • Изменено оформление диалога сохранения паролей, добавлен флаг для показа пароля перед его сохранением; 0_1474833432.png
  • В адресной строке, рядом с URL, обеспечен показ уровня масштабирования, если он отличается от заданного по умолчанию. При клике на индикатор, масштаб сбрасывается в значение по умолчанию; 0_1474833510.png
  • Сокращена нагрузка на CPU при отображении видео и улучшено качество полноэкранного вывода на системах без поддержки ускорения средствами GPU;
  • Добавлена поддержка сохранения паролей для форм без событий отправки (submit);
  • Включение по умолчанию многопроцессного режима расширено на средства для людей с ограниченными возможностями, а также на системы Windows 10 с сенсорными экранами;
  • Добавлена поддержка спецификации WebGL 2, которая определяет способ формирования аппаратно ускоренного 3D-контента при помощи HTML5-конструкций «Canvas» и JavaScript-интерфейса к OpenGL API. WebGL дает возможность web-разработчикам получить прямой доступ к функциям OpenGL и обеспечить включение 3D-контента в HTML-страницы;
  • Если не возникнет непредвиденных проблем в релизе, планируется включить по умолчанию API WebExtensions, предназначенный для разработки дополнений, совместимых с браузером Chrome. Дополнение могут выполняться в отдельных дочерних процессах, изолирующих их от остальных частей браузера. Добавлена возможность встраивания WebExtension в состав классических дополнений. Реализован API для доступа к буферу обмена. Различия между API Chrome и WebExtensions можно отследить на данной странице. Время прекращения поддержки XUL пока не определено, поэтому XUL пока будет сосуществовать с WebExtensions.
  • Реализовано JavaScript-свойство Symbol.toStringTag, а также методы TypedArray.prototype.toString () и TypedArray.prototype.toLocaleString (), определённые в спецификации ES2015;
  • Выражения const и let приведены к полному соответствию со спецификацией ES2015;
  • Началась постепенная выборочная блокировка сертификатов, заверенных с использованием алгоритма хэширования SHA-1. Для небольшого процента пользователей при обращении к сайтам, использующим сертификаты с SHA-1, будет выводиться ошибка и соединение будет помечаться незащищённым. Если не возникнет непредвиденных проблем, в дальнейшем блокировка SHA-1 будет расширена на всех пользователей браузера. Как и в случае с самоподписанными сертификатами, ошибку можно обойти через специальный диалог. Поддержка SHA-1 для вручную импортированных сертификатов пока сохранена;
  • Прекращено урезание интенсивности генерации событий таймеров Window.setInterval () и Window.setTimeout () для вкладок, в которых задействован Web Audio API AudioContext, даже если во вкладке в данный момент не воспроизводится звук. Подобное изменение позволит решить проблемы с работающими в фоне музыкальными web-плеерами;
  • Доведена до конца реализация второй версии API IndexedDB: добавлены методы IDBObjectStore.getKey () и IDBCursor.continuePrimaryKey (), обеспечена поддержка бинарных ключей;
  • Тег «hr» теперь может использоваться в качестве разделителя элементов в блоке «menu»;
  • В WebRTC включена по умолчанию поддержка видеокодека VP9;
  • Внедрена блокировка загрузки и выполнения скриптов, отдаваемых сервером под MIME-типами image/*, video/*, audio/* или text/csv;
  • Прекращена поддержка нестандартных API Simple Push и Alarm, созданных для Friefox OS;
  • Прекращена поддержка локали для белорусского языка. Из-за отсутствия сопровождающего данная локаль не обновлялась уже почти два года, а попытки найти заинтересованных лиц, готовых возобновить поддержку данной локали, не увенчались успехом;
  • На платформах Linux и Android для отображения контента задействована графическая библиотека Skia.




Улучшения, ожидаемые в Firefox 52:

  • В средства для web-разработчиков добавлен режим адаптивного дизайна (включается через меню «Responsive Design Mode» в разделе «Web Developer»), позволяющий протестировать работу сайта в окружении, симулирующем работу на устройствах с различным экранным разрешением и DPI, с управлением через сенсорный экран, с разными значениями User-Agent и в условиях ограниченной пропускной способности сети и повышенных задержках доставки пакетов (например, можно симулировать доступ по GPRS со скоростью 50 KB/s и задержкой в 500 мс); 0_1479802498.png
  • Для пользователей Firefox Sync реализована возможность целевой отправки вкладки на заданное устройство, с автоматическим открытием данной вкладки на данном устройстве;
  • Включена по умолчанию поддержка технологии WebAssembly, предоставляющей не зависящий от браузера универсальный низкоуровневый промежуточный код для выполнения в браузере приложений, скомпилированных из различных языков программирования;
  • Реализованы средства для автоматического определения перенаправления на страницы аутентификации для подключения к сети (captive portal);
  • В многопроцессном режиме появилась поддержка систем озвучивания содержимого экрана (screen reader) и сенсорных экранов Windows 8;
  • Прекращена поддержка API Battery Status. Изначально разработчики полагали, что данный API, позволяющий получить информацию об уровне заряда аккумулятора, будет использован в web-приложениях для экстренного сохранения данных или для отключения требующих интенсивных вычислений операций при исчерпании заряда аккумулятора. Но на деле, данный API получил распространение лишь для отслеживания пользователей (уровень заряда аккумулятора как дополнительный параметр для выделения пользователя в общем потоке) и жульничества (например, Uber повышал цены для пользователей с низким зарядом аккумулятора);
  • Прекращена по умолчанию поддержка плагинов с интерфейсом NPAPI, в том числе Silverlight, Java, Unitym, Gnome Shell Integration и плагинов с поддержкой мультимедийных кодеков (список активных плагинов можно посмотреть через URL about: plugins). Исключение сделано только для Adobe Flash, так как данная технология ещё остаётся востребована большим числом пользователей. Для пользователей пока оставлена специальная опция, которая позволяет вернуть NPAPI, но в Firefox 53 данная опция будет удалена. В более отдалённом будущем разработчики намереваются полностью удалить поддержку NPAPI, а для пользователей Flash предоставить возможность использования плагина с интерфейсом PPAPI. 0_1475995221.png
  • Включена по умолчанию поддержка спецификации TLS 1.3, которая пока находится в состоянии находящегося в разработке черновика;
  • Добавлен API для проверки видимости рекламных блоков силами JavaScript, без необходимости использования для этого Flash;
  • Продолжено усовершенствование API WebExtensions для разработки дополнений, совместимых с браузером Chrome. Из новых программных интерфейсов отмечается реализация API для управления сеансами (sessions.getRecentlyClosed и sessions.restore), позволяющего получить информацию о недавно закрытых вкладках и восстановить их при необходимости. Добавлен API topSites, предоставляющий дополнениям доступ к списку наиболее часто открываемых сайтов. Также представлен API omnibox через который можно зарегистрировать ключевое слово, предоставив для него собственный набор операций в адресной строке. Готов для тестирования API storage.sync, через который дополнение может организовать обмен данными между разными устройствами. Добавлены события onRemoved, onMoved, onCreated и onChanged для перехвата действий с закладками;
  • Добавлена возможность обработки контента в нескольких процессах и началась интеграция наработок из проекта Quantum, в котором производится работа по переносу в движок Gecko возможностей, изначально развиваемых для движка Servo. Если ранее при включении многопроцессного режима осуществлялось разделение на два процесса — один для обработки содержимого вкладок и один для формирования интерфейса, то теперь появилась возможность запуска нескольких процессов для обработки контента (число запускаемых процессов для обработки контента задаётся через переменную dom.ipc.processCount в about: config);
  • Добавлен метод window.requestIdleCallback, позволяющий отложить вызов функции на время, когда браузер будет находится в состоянии простоя (idle). Например, при помощи данной возможности можно организовать выполнение низкоприоритетных и фоновых задач, без их негативного влияние на выполнение чувствительных к задержкам операций, таких как вывод анимации и ввод;
  • Представлена поддержка нового типа функций «async», определённого в спецификации ECMAScript 7 и позволяющего упростить написание кода, выполняемого в асинхронном режиме;
  • Добавлен API Intersection Observer, позволяющий увеличить производительность сайта за счёт применения техники отложенной загрузки контента и значительного снижения накладных расходов при проверке видимости контента;
  • На платформе Windows возобновлена поддержка событий сенсорного экрана.

© OpenNet