Релиз Firefox 4.0. Обзор новшеств

После 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.

http://www.opennet.ru/opennews/art.shtml?num=29978

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *