Firefox 22 перешёл на стадию бета-тестирования, что ознаменовало прекращение формирования базовой функциональности и сосредоточение всего внимания на выявлении ошибок и контроле качества. Одновременно сформирована aurora-ветка Firefox 23. Новые возможности Firefox 23 ещё точно не утверждены, так как на стадии тестирования aurora-ветки будет произведена оценка готовности для релиза тех или иных новшеств. Загрузить бета-выпуск можно на данной странице, а aurora-версию здесь. Релиз Firefox 22 намечен на 25 мая, релиз Firefox 23 ожидается 6 августа.
Основные особенности бета-версии Firefox 22:
- Интеграция оптимизирующего модуля OdinMonkey c реализацией поддержки Asm.js - низкоуровневого подмножества языка JavaScript со строгой типизацией, позволяющего существенно увеличить производительность приложений, автоматически преобразованных в JavaScript с языков C/C++ при помощи таких инструментов, как Emscripten и Mandreel.
Подмножество JavaScript, предлагаемое в Asm.js, полностью совместимо с обычным JavaScript и может выполняться в любых браузерах, так как вся дополнительная информация определяется в форме аннотаций. Совместимость полностью сохраняется - если браузер не поддерживает Asm.js, то код выполняется как обычный JavaScript, а если поддерживает - включается дополнительный оптимизирующий модуль, учитывающий добавленные в код аннотации. Наличие информации о типах позволяет использовать не только JIT, но и предварительную AOT-компиляцию, выполняемую для всего кода до начала его выполнения и генерирующую более простой и эффективный машинный код. При этом, в отличие от JIT-компиляции, Asm.js обеспечивает предсказуемую производительность и не зависит от сборщика мусора. В итоге, код с известной информацией о типах выполняется всего в два раза медленнее нативного приложения, написанного на C/C++. В то время как без Asm.js скомпилированное с использованием Emscripten приложение выполняется медленнее в 5 раз.
- Включение по умолчанию поддержки технологии WebRTC, позволяющей через специальный JavaScript API реализовать работающие в браузере Web-приложения, снабжённые средствами для аудио и видео коммуникаций в режиме реального времени. В частности, при помощи WebRTC можно создать многопользовательские web-приложения для организации видео и аудио вызовов, не требуя при этом задействования дополнительных плагинов. Кроме уже поддерживаемого API getUserMedia, предназначенного для организации доступа к локальному микрофону и web-камере, в состав также включены API PeerConnection и DataChannels для организации безопасного шифрованного P2P-соединения между браузерами, позволяющего обеспечить обмен файлами и выполнение прямых соединений из браузера одного клиента в браузер другого, без задействования внешних сервисов. В будущих выпусках поддержка WebRTC будет расширена средствами обхода NAT (технология TURN);
- В менеджер дополнений добавлен интерфейс для управления социальными сервисами;
- Возможность изменения скорости воспроизведения аудио и видео контента, доступ к которому организован через средства HTML5;
- Для платформы Windows теперь учитываются заданные в системе опции масштабирования текста, информирующие о необходимости увеличить размер символов для экранов с очень высоким разрешением;
- Для платформы Mac OS X информация о статусе загрузки теперь отображается в пиктограмме на системном лотке;
- Для увеличения производительности рендеринга WebGL задействована техника асинхронного обновления слоёв, заданных через canvas;
- Сокращено потребление памяти и время вывода на экран при отображении на странице большого числа изображений. Обеспечена поддержка многопоточного декодирования изображений;
- Текстовые файлы (text/plain) теперь отображаются с использованием переноса слов;
- Pointer Lock API (Mouse Lock API), позволяющий создателям игр получить более полный контроль над мышью, в частности скрыть штатный указатель мыши и обеспечить собственную обработку перемещения мыши, теперь применим не только к полноэкранным сеансам;
- Добавлена поддержка HTML5-элементов "time" и "data" для задания времени и других данных в машино-читаемом виде, а также элемента "input type=range" для организации ввода диапазонов значений;
- Реализация Web Notifications API, предназначенного для организации отображения системных уведомлений пользователю, выводимых вне контекста текущей страницы (например, в области уведомлений десктоп-окружения);
- Для обеспечения безопасности пользователей, объект Components более не доступен для обращения из web-контента;
- Новый встроенный инструмент для web-разработчиков - Font Inspector, предназначенный для инспектирования шрифтов. Например, теперь можно легко оценить какой именно шрифт отображается в каждом элементе странице и при необходимости внести на лету корректировки и посмотреть результат;
- Реализация clipboardData API, предназначенный для выполнения из web-приложения на языке JavaScript типичных операций с буфером обмена, таких как вырезание, копирование и вставка;
- Включение по умолчанию поддержки CSS3-свойства Flexbox, предназначенного для упрощённой блочной компоновки элементов на странице. С использованием Flexbox разработчик легко может адаптировать свои страницы для оптимального отображения на экранах разного размера и с различным разрешением. В частности, для небольших экранов смартфонов или планшетов можно организовать автоматическое изменение размера контента и его перегруппировку, переместить наиболее важные элементы вверх и сократить число колонок;
- Обновление инструментов для web-разработчиков. Панель инструментов теперь может быть перемещена из нижней строки в боковую панель. Добавлен новый режим наглядной визуализации перерисовки, позволяющий оценить какие из частей страницы были обновлены;
- Из новшеств версии для Android отмечается поддержка автоматического скрытия строки навигации при прокрутке текущей страницы. Полноценный интерфейс Firefox для планшетных ПК теперь доступен и для планшетов с небольшими экранами.
Ранее запланированное для Firefox 22 применение новых павил обработки Cookie, направленных на обеспечение сохранения частной информации о перемещении пользователя в Сети, отложено на неопределённое время из-за необходимости устранения ситуация, приводящих к ложным блокировкам. Ключевой особенностью новых правил является разрешение установки Cookie только кодом, загруженным с непосредственно просматриваемых пользователем сайтов. Установка сторонних Cookie, которые инициируются кодом со сторонних сайтов, непосредственно не открываемых пользователем и лишь косвенно связанных с текущей страницей, будет блокирована по умолчанию. Новые правила не отразятся на работе сайтов от своего лица выставляющих Cookie, а также на работе сайтов со стороны которых уже имеются выставленные Cookie. В ветке Aurora новые правила включены по умолчанию на время тестирования. В бета выпуск Firefox 22 изменения интегрированы, но не активированы по умолчанию.
Улучшения, ожидаемые в Firefox 23:
- Включение системы блокирования смешанного контента, предназначенной для защиты пользователей от MITM-атак (man-in-the-middle) и интеграции прослушивающих вставок на HTTPS-страницы. Начиная с Firefox 23 при наличии на доступной через HTTPS странице обращений к незащищённым HTTP-ресурсам, некоторые виды обращения по HTTP будут блокироваться по умолчанию. Блокироваться будет только активный контент, т.е. незащищённые запросы скриптов. Незащищённые запросы изображений и статического контента будут по прежнему разрешены. Для выборочной отмены блокировки на отдельных страницах предусмотрен специальный интерфейс, похожий на интерфейс обхода блокировки плагинов. В случае блокировки в адресной строке будет отображаться пиктограмма с изображением щита, при нажатии на которую будет выводится блок индивидуальных настроек для текущей страницы;
- Проведена чистка настроек, которые остаются по историческим причинам, подрывают понятие целостного продукта и востребованы менее, чем 1% пользователями. В частности, убрана настройка, отключающая JavaScript, так как она потеряла смысл и c большинством сайтов без JavaScript работать невозможно. Настройка отключения загрузки изображений убрана так как некоторые сайты становятся при выборе данного режима нечитаемыми (например, на главной странице поисковой системы Google при отключенных изображениях пропадает строка ввода поискового запроса). Убрана возможность отключения строки вкладок;
- При использовании Mac OS X 10.7 и более новых выпусков задействованы анимационные эффекты при навигации, добавлен новый стиль оформления полосы прокрутки, в процессе прокрутки при достижении начала или конца страницы реализован эффект отскакивания;
- Настройки поискового провайдера объединены с панелью поиска: переключиться на другую поисковую систему, изменить настройки поиска в адресной строке или контекстного поиска можно непосредственно из поисковой панели;
- Значок добавления в закладки (звёздочка) вынесен за пределы адресной строки;
- В Windows Vista и более новых версиях Windows включена поддержка DXVA2 для ускорения декодирования видео H.264;
- Расширены возможности страницы about:memory, используемой для анализа потребления памяти браузером;
- Удалена поддержка системы TestPilot;
- Прекращена поддержка тэга blink (мигание текста, обрамлённого данным тэгом) и CSS-свойства "text-decoration: blink" в движке Gecko. Тэг blink специфичен для Mozilla, не поддерживается такими браузерами, как Chrome, Safari и IE, и давно вызывает много споров и недовольства пользователей. Примечательно, что впервые тэг blink был реализован несколькими разработчиками Netscape как шутка, добавленная после бессонной ночи, проведённой в баре;
- Для разработчиков реализована глобальная браузерная консоль;
- Social API "recommend" переименован в "SocialMark". Для приложений на базе Social API добавлена панель обмена контентом.