Итак, накануне католического рождества компания Mozilla порадовала пользователей браузера Firefox выходом финальной 9-й сборки, которая приносит наряду с повышением общей стабильности, исправлением ошибок и мелкими изменениями немало и важных улучшений.
Type Inference
Наиболее заметной и важной новой функцией является Type Inference в движке JavaScript. Эта техническая функция, детали которой интересны более программистам, нежели рядовым пользователям. Важнее всего то, что она позволит браузеру исполнять современные веб-сайты, нагруженные кодом JavaScript (такие как Gmail или Twitter), гораздо быстрее. Type Inference — это большой проект внутри компании Mozilla, разработчики которой работали над ним более года, и вот сейчас плоды их трудов могут оценить все желающие.
Проблема JavaScript в том, что тип переменных (целочисленный, строчный и так далее) не задаётся изначально, а он определяется интерпретатором в процессе работы в зависимости от того, какие операции проводятся. Это обеспечивает большую гибкость, но также приводит к тому, что интерпретатор JavaScript должен учитывать эту особенность, и работать с каждой переменной, как с абстрактным типом, который может быть содержать любой тип значений.
Движок SpiderMonkey JavaScript в Firefox 9 анализирует код и прогнозирует тип переменных. Затем он использует эти предсказания при создании компилированного кода JIT. Результатом становится более компактный и быстрый код и уменьшенные требования к памяти (впрочем, некоторый объём памяти нужен и для определения типа переменных).
Инженер Firefox Брайан Бонди (Brian Bondy) отмечает, что модификации движка JavaScript, внесённые в Firefox 9, увеличивают производительность в таких известных тестовых пакетах, как Kraken и V8 более чем на 30% и обеспечивает значительный рост производительности большинства веб-сайтов, использующих сложный код JS.
Но даже сегодня, когда технология внедрена в Firefox 9, компания Mozilla продолжает работы в направлении оптимизации производительности. Следующее поколение движка JIT, IonMonkey, которое сейчас находится в процессе разработки, будет уже рассчитано на работу Type Inference, благодаря чему прирост производительности должен стать ещё более ощутимым.
Проверка Do Not Track через JavaScript
Другим нововведением в Firefox 9 стала поддержка метода проверки Do Not Track через код JavaScript во время считывания заголовка HTTP. Это должно упростить проверку приложениями и веб-сайтами настроек конфиденциальности и принять соответствующие меры.
Do Not Track — это метод, представленный и внедрённый впервые в Mozilla, требующий от сайтов, чтобы все связанные с ним рекламные сети отключили мониторинг активности пользователя, проводимый для целевой рекламы. Главным противником распространения Do Not Track является Google — основные доходы поискового гиганта приносит именно реклама, для эффективной работы которой требуются статистические данные.
Улучшенная поддержка Mac OS X Lion
Firefox 9 также лучше интегрируется с последней версией операционной системы Mac OS X. Браузер более естественно смотрится в этой системе благодаря улучённой интеграции темы ОС. Также веб-обозреватель поддерживает двухточечный жест для навигации.
Новый планшетный интерфейс
Мобильная версия Firefox 9 принесёт в перспективе (пока доступна только бета-версия) новый и оптимизированный для Android-планшетов интерфейс. Он разрабатывался последние несколько месяцев и теперь готов к внедрению.
Прочие улучшения
Конечно, разработчики Mozilla провели большую работу в тех областях, которые пользователи не заметят напрямую. Firefox 9 приносит улучшенную поддержку веб-стандартов HTML5, MathML и CSS. Например, можно упомянуть поддержку растяжения шрифтов в Firefox 9 с помощью CSS-свойства font-stretch. А благодаря расширенной поддержке свойства каскадных таблиц стилей text-overflow сайты смогут сообщать Firefox о том, как управлять выходящим за края текстом.