Релиз Firefox 4.0. Обзор новшеств
22 марта 2011 года
После 14 месяцев разработки официально представлен релиз web-браузера Firefox 4.0. Среди ключевых изменений: интеграция браузерного движка Gecko 2.0 и нового JavaScript-движка JagerMonkey, перемещение строки вкладок в верхнюю часть и добавление инструментов для группировки вкладок, поддержка протокола HSTS, технологии борьбы с XSS-атаками CSP и HTTP-заголовка Do Not Track, обеспечение поддержки спецификации WebGL и видеокодека VP8, интеграция системы синхронизации настроек Firefox Sync и реализация новой техники написания дополнений JetPack.
Загрузить Firefox можно на странице getfirefox.com, а наблюдать счетчик загрузок на сайте glow.mozilla.org. Пользователи Ubuntu могут установить новую версию из PPA-репозитория firefox-stable.
Обзор основных улучшений:
- Пользовательский интерфейс
- Обновлен интерфейс пользователя: панель вкладок перемещена в верхнюю часть окна. В строку с табами можно добавлять различные элементы тулбаров, такие как закладки, адресную строку и блок для обращения к поисковым системам. Переместить строку вкладок под строку ввода адреса можно через контекстное меню, появляющееся при нажатии правой кнопки мыши на строке вкладок;
- Возможность скрыть меню в кнопку "Firefox" в строке вкладок. В Linux версии меню оставлено по умолчанию на прежнем месте, но строка с вкладками поднята над адресной строкой, что очень непривычно. Сворачивание меню производится через убирание в контекстном меню галки "Панель меню";
- Кнопки "stop" и "reload" объединены в одну многофункциональную кнопку, которая перемещена в конец адресной строки. Добавлена домашняя вкладка "about:home" (иконка с домиком в правой части адресной строки) в которой присутствует форма обращения к поисковой системе (в русской сборке - Yandex) и ссылка на восстановление прошлой сессии;
- Формы ввода текста теперь по умолчанию допускают произвольное изменение своего размера мышью;
- Новый менеджер дополнений, который открывается в виде вкладки в основном окне браузера и оптимизирован для поиска и навигации по каталогу дополнений. Дополнительно в менеджер дополнений интегрирована поддержка управления поисковыми плагинами, которые теперь могут быть настроены в одном месте, наряду с визуальными темами и языковыми пакетами;
- Новый менеджер для управления сохраненными паролями. Диалог для сохранения пароля для открытой страницы теперь можно вызвать в любое время, а не первые несколько секунд после открытия страницы;
- В состав браузера интегрирован инструмент Web Console (Web Inspector), позволяющий отследить выполняемые запросы, проанализировать структуру документа (дерево DOM) и наглядно сопоставить визуально отображаемые элементы с участками HTML-кода и CSS. В итоге планируется получить простой и удобный инструмент инспектирования страниц, который тем не менее останется минималистичным и не будет пытаться конкурировать по функциональности с Firebug;
- Если при наборе ключевых слов в строке ввода адреса, в списке выбранных ссылок имеются уже открытые во вкладках страницы, то они помечаются особым значком (добавляется пометка "перейти на вкладку") и при клике на них активируется уже открытая вкладка;
- Добавлен режим плавной (при Page Down страница перематывается не мгновенно, а с некоторой задержкой, такой что перемещение строк становится заметным) и автоматической прокрутки (движение мышью при нажатой средней кнопке) содержимого страницы;
- Добавлена поддержка перемещения любой вкладки в отдельную область "App Tab", через выбор "Make into App Tab" ("Закрепить вкладку") в контекстном меню вкладки. Блок "App Tab" предназначен для закрепления и автоматической загрузки вкладок с сайтами, которые пользователь просматривает несколько раз в день (почта, социальные сети, игровые сайты и т.п.). Перемещенные в "App Tab" табы с одной стороны не занимают места в строке вкладок, но с другой стороны остаются доступными в один клик;
- В состав интегрировано дополнение Firefox Panorama (Tab Candy), которое представляет возможность сгруппировать вкладки по характеру выполняемой работы, а затем легко переключаться между группами вкладок (при переключении на интересующую группу, Firefox отображает только вкладки этой группы, скрывая все остальные). Управление группами производится через кнопку в правой части строки с вкладок (меню "Группы вкладок") или при нажатии Ctrl+Shift+E, с последующим созданием групп и перетаскиванием вкладок;
- Для платформы Windows 7 добавлена поддержка режима multi-touch, позволяющего управлять работой браузера используя интуитивно понятные жесты ( видеодемонстрация), например, передвигать содержимое через удержание касания к сенсорному экрану, масштабировать содержимое двумя пальцами, вращать объекты в web-приложениях, используя специальный API.
- Сообщения об изменении статуса соединения теперь выводятся в виде небольшого всплывающего блока. К сожалению, при наличии активной формы поиска на странице статусное сообщение с URL всплывает в правом нижнем углу, а без активной строки поиска - в левом нижнем углу, что очень неудобно так как трудно предсказать в куда нужно смотреть чтобы увидеть куда ведет ссылка. Для восстановления статусной строки следует установить дополнение Status-4-Evar;
- Базовые возможности
- Поддержка в HTML5-теге "video" медиа-контейнера WebM и видеокодека VP8;
- В состав браузера включено дополнение Firefox Sync, которое позволяет пользователям синхронизировать закладки, список открытых вкладок, историю и сохранённые пароли между несколькими компьютерами, а также мобильными телефонами, с установленным браузером Firefox Mobile. Из iPhone доступ к синхронизированным данным можно получить через приложение Firefox Home. Данные передаются и хранятся на сервере в зашифрованном виде, в качестве ключа используется известный только пользователю пароль;
- Поддержка стандарта WebGL, определяющего способ формирования аппаратно ускоренного 3D контента без привлечения сторонних плагинов при помощи HTML5 конструкций "Canvas" и JavaScript реализации OpenGL API;
- Поддержка технологии написания дополнений JetPack, установка которых производится без перезапуска web-браузера. Технология Jetpack представляет собой новый упрощенный способ расширения функциональности Firefox, через разработку расширений с использованием стандартных web-технологий (HTML, CSS и Javascript), без изучения внутренней структуры браузера и тонкостей технологии XUL. Добавлена система JS-ctypes для обеспечения возможности вызова нативного кода из JavaScript-расширений;
- Для web-разработчиков
- Улучшения платформы: интегрирован новый HTML5-парсер, улучшающий поддержку HTML5 (например, теперь можно не выносить SVG и MathML, а добавлять их прямо в код страницы) и позволяющий избавиться от множества ошибок старого парсера;
- Добавлена поддержка HTML5 API для управления web-формами ( HTML5 Forms API), позволяющего упростить процесс проверки корректности параметров web-форм. Например, новая возможность позволяет организовать проверку введения в форму корректного email-адреса, номера телефона или URL без использования JavaScript;
- Интегрирована поддержка API IndexedDB, позволяющая использовать в JavaScript локальные индексируемые БД, в которых можно не только выбирать данные по имени ключа, но и совершать отсортированные в определенном порядке выборки.
- Поддержка технологии web-сокетов (Web Sockets) для организации двунаправленного обмена данными между web-приложением и сервером (по умолчанию поддержка отключена);
- Представлен API для управления переходом в полноэкранный режим, улучшение поддержки API для определения местоположения на основе данных от GPS-приемника. Изменено поведение при выделении ранее открытых ссылок. Для SVG реализована поддержка SMIL-анимации.
- Поддержка CSS-трансформаций. CSS-трансформация позволяет применять для целых страниц или их элементов операции перемещения, вращения, наклона, масштабирования и матричных преобразований;
- Поддержка API для низкоуровневой обработки аудио-данных. При помощи нового API разработчики, могут читать и записывать звуковые потоки в raw-представлении, что, например, можно использовать для наглядной визуализации звука, полученного при работе тегов audio и video;
- Новые функции:
- Для объектов типа "диапазон" (range) добавлены новые методы getClientRects и getBoundingClientRect;
- Добавлена поддержка DOM-методов setCapture и releaseCapture;
- Реализована поддержка методов HTML5 History.pushState(), History.replaceState() и события popstate;
- Добавлена поддержка значения "-moz-image-rect()" для CSS элемента background-image, задающего параметры фонового рисунка;
- Для тегов "input" и "textarea" добавлена поддержка атрибута "placeholder", в котором задается подсказка с примером заполнения элемента web-формы;
- В HTML5 теге video теперь поддерживается свойство "buffered", позволяющее перемещаться по потоку на основе привязанной к времени позиции, а не на основе размера загруженных данных. Свойство "autobuffer" заменено на "preload";
- Для обеспечения более эффективной анимации с использованием Javascript добавлено экспериментальное API mozRequestAnimationFrame.
- Внутренние изменения
- Начало подготовки 64-разрядных сборок для Linux (раньше сборки формировались только для 32-рязрядных систем);
- Новая встроенная страница "about:memory" показывает распределение памяти веб-браузером;
- Некоторые настройки вынесены из about:config в CSS. Например, убраны директивы "browser.tabs.tabMinWidth" и "browser.tabs.tabMaxWidth", вместо них для расширения числа одновременно отображаемых на экране вкладок необходимо переопределить в файле userChrome.css свойство "min-width". Тем не менее, использование данного метода привело к появлению странных проблем (в некоторых ситуациях при закрытии таба соседние табы не смыкались и образовывалось пустое место), проблему удалось решить только установкой дополнения custom-tab-width;
- Создан черный список видеодрайверов, приводящих к нестабильной работе. В Linux для всех драйверов, кроме проприетарного драйвера NVIDIA, по умолчанию заблокировано использование OpenGL-акселерации и WebGL. Подобный шаг сделан из-за проблем со стабильностью;
- Оптимизация производительности
- Браузер перешел на новый JavaScript-движок JägerMonkey, использующий легкий контекстно-ориентированный многопоточный JIT-компилятор, транслирующий JavaScript-классы на лету в машинный код. Скорость работы нового движка впечатляет, по сравнению с Firefox 3.6 скорость прохождения тестов V8 возросла в 5 раз, а тестов SunSpider и Kraken в 3 раза;
- Использование C++-представления для организации работы с переменными JavaScript, позволило повысить эффективность выполнения скриптов, требующих интенсивных численных вычислений, например, для обработки графики. Для всех типов переменных теперь используется единая 64-разрядная переменная jsval, в первых 32-битах которой закодирован тип, позволяющий отличить указатели на строки, объекты, числа с плавающей точкой и целочисленных переменных;
- Значительно ускорено восстановление сессии за счет открытия вкладок из кэша вместо их полного перечитывания;
- Поиск ссылки в БД с историей посещений теперь производится в асинхронном режиме;
- Проведена работа по увеличению скорости перезапуска браузера в процессе установки обновления, время завершения работы теперь ускорено на 97%.
- Оптимизирован процесс ввода/вывода.
- Добавлена поддержка аппаратной акселерации при формировании вывода и при отображении видео;
- Проведена ревизия кода, связанная с работой закладок и историей посещений, что привело к ускорению работы с закладками и уменьшению времени запуска браузера;
- По умолчанию активирован новый сборщик мусора;
- Реализована технология отложенного построения фреймов для увеличения скорости работы динамических страниц;
- Загрузка HTML5-спецификации более не приводит к ощутимым паузам;
- Увеличена скорость повторной прорисовки HTML в SVG теге "foreignObject";
- Улучшение производительности выполнения строковых операций в JavaScript;
- Добавлена возможность JIT-компиляции рекурсивных функций;
- Увеличена скорость отрисовки;
- Уменьшено время выполнения операций с DOM-деревом.
- Поддержка сохраняемых слоев (Retained Layers), позволяющая организовать супербыструю прокрутку содержимого большой web-страницы;
- Реализация нового метода регистрации XPCOM компонентов, которая позволила сократить время запуска браузера;
- Безопасность
- Добавлена поддержка HTTP-заголовка Do Not Track ("DNT"), позволяющего информировать сайты о нежелании пользователя передавать на хранение фигурирующую в рамках сессии информацию, в ситуации ее использования для отслеживания перемещений и предпочтений пользователя. Настройка отправки DNT-заголовка производится в блоке расширенных настроек браузера;
- Осуществлен переход на улучшенный механизм распределения памяти, который позволит защититься от целого ряда уязвимостей, связанных с разыменованием NULL-указателей. При возникновении проблемы с выделением памяти аллокатор аварийно завершит работу, вместо возврата NULL-указателя;
- Поддержка технологии CSP (Content Security Policy), направленной на интеграцию в web-браузеры средств для защиты от проведения CSRF-атак, организации межсайтового скриптинга (XSS) и подстановки в страницы "IFRAME/JavaScript src" блоков;
- Интегрирована технология изолированного выполнения плагинов. Например, Flash плагин отныне будет работать в контексте отдельного процесса, не влияя на стабильность основного браузера;
- Поддержка протокола HSTS (HTTP Strict Transport Security), позволяющего владельцам сайтов настоять на использовании SSL-шифрования. В процессе работы Firefox запоминает сайты, использующие HSTS, и в будущем соединяется с ними только при помощи протокола SSL;
В соответствии с новой схемой подготовки релизов, следующая версия Firefox 5 будет выпущена через 4 месяца. В будущей версии планируется реализовать новый интерфейс управления аккаунтами и простой интерфейс для обмена ссылками с друзьями (интеграция поддержки сервиса F1), добавить анимационные эффекты в пользовательском интерфейсе и подготовить 64-разрядную сборку для Windows.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.