18 June 2008

Новшества Firefox 3

Firefox
17 июня вышла третья версия современного бесплатного мультиплатформенного браузера Firefox. Новая версия содержит множество улучшений и предлагает ряд новых, впечатляющих возможностей.

Firefox 3 стал быстрее и потребляет намного меньше памяти



Firefox 3 примерно вдвое быстрее предыдущей версии и в несколько раз быстрее, чем IE7. Например, Gmail работает в Firefox 3 примерно в 7 раз быстрее, чем в IE7, обеспечивая субъективно мгновенную реакцию на действия пользователя там, где IE7 «задумывается» на заметно долгое время.

Потребление памяти у Firefox 3 более чем вдвое ниже, чем у Firefox 2, и почти в 5 раз ниже, чем в IE7. Устранены сотни причин утечек памяти, в том числе при циклических ссылках объектов друг на друга. Архитектура Firefox 2 не позволяла эффективно управлять расширениями в плане расходуемой ими памяти, в то время как причиной большинства утечек памяти являлись именно расширения.

Официальные сборки Firefox 3 создаются с использованием так называемой Profile-Guided-оптимизации (PGO). Заключается она в том, что работа конечного исполняемого файла ускоряется за счёт двухпроходной компиляции: предварительной и окончательной. При окончательной компиляции производится особая оптимизация кода на основе данных, полученных при реальной работе с программой после предварительной компиляции. Это позволяет добиться существенного прироста производительности без какого-либо изменения исходного кода программы. Так, в Firefox 3 ускорение при работе с JavaScript только за счёт PGO составило порядка 11%.

Примерно на 40% увеличена скорость декодирования графических файлов в формате JPEG.

Визуальная интеграция с интерфейсом операционной системы


Визуальный интерфейс Firefox 3 по умолчанию максимально приближен внешне к родному интерфейсу операционной системы, под которой браузер запускается. Это потенциально упрощает использование браузера, поскольку назначение элементов интерфейса угадывается на уровне зрительного узнавания элементов, уже хорошо знакомых пользователю.

Places — удобная работа с закладками и историей


Внедрён новый механизм управления закладками и историей посещённых страниц — Places, а для хранения и работы с соответствующими данными используется СУБД SQLite. Работа с закладками упрощена: в частности, добавить закладку теперь можно одним щелчком по значку в форме звезды в правой части адресной строки, а вопросы тонкой организации структуры папок и других параметров закладок решать позднее.
Каждой закладке можно сопоставить произвольное количество меток, что поднимает навигацию по закладкам на новый уровень удобства.

AwesomeBar — умная адресная строка


Повышено удобство адресной строки:
  • введённые в адресную строку символы автоматически ищутся не только в URL-адресах ранее посещённых страниц, но и в их названиях и сопоставленных закладкам метках, благодаря чему новая адресная строка даже была прозвана разработчиками Smart Location Bar («умная адресная строка»), или AwesomeBar («потрясающая адресная строка»);
  • в адресной строке теперь поддерживаются символы в кодировке UTF-8: URL-кодированные нелатинские URL на страницах в кодировке UTF-8 отображаются в декодированном виде вместо неудобных для восприятия человеком шестнадцатеричных кодов — это весьма актуально для сайтов с многоязычными URL-адресами вроде Wikipedia. Ранее такая возможность вкупе с некоторыми более радикальными улучшениями адресной строки была доступна лишь через расширение Locationbar². Кроме того, нелатинские символы, содержащиеся в URL-адресах, введённых в адресную строку вручную, перед URL-кодированием до отправки запроса на сервер автоматически приводятся к кодировке UTF-8, что уже стало стандартом де-факто во многих других браузерах, включая Opera и IE.


Движок рендеринга, Reflow Refactoring и Acid2


Устранено множество ошибок рендеринга страниц, в том числе:
  • продавливание внутренних горизонтальных отступов строчных элементов сквозь границы родительского блочного элемента при переполнениии, что приводило к выходу текста за пределы родительского блока и появлению горизонтальной полосы прокрутки, когда объективных причин для этого не было,
  • появление пустого пространства при выведении указателя мыши за пределы ссылки с нижним внутренним отступом, что приводило к неприятному динамическому визуальному эффекту, что впервые проявилось в Firefox 1.5 и в Firefox 2 исправлено не было;
  • однопиксельный зазор под блочными элементами в ячейках таблиц.

Все такие ошибки были устранены автоматически после внедрения рефакторинг-ветви, которая касается итерационной перерисовки (Reflow) страницы при её первоначальном выводе или обновлении при изменении размеров окна, шрифта или других характеристик, влияющих на расположение элементов страницы. Над этим на протяжении почти двух лет работал Дэвид Бэрон (David Baron), один из ведущих разработчиков Mozilla.

Именно благодаря этому Firefox 3 проходит Acid2 — тест на соответствие браузеров веб-стандартам.

Масштабирование страниц целиком


Реализовано масштабирование страниц целиком (Full page zoom), подобное используемому в Opera. Выгодным отличием от Opera при этом является то, что билинейная интерполяция применяется ко всем изображениям без исключения — в том числе GIF- и PNG-изображениям с прозрачными областями.

Кроме того, для приверженцев прежнего способа масштабирования, при котором масштабировался только текст, введена опция «Только текст» («Zoom text only») в меню «Вид» → «Масштаб», позволяющая вернуть изменение только размера шрифта без масштабирования (и сопутствующего искажения) изображений и элементов макета, привычное для пользователей предыдущих версий Firefox.

Приятные мелочи и не совсем мелочи


  • Всплывающие подсказки (реализуемые HTML-атрибутом title) теперь многострочные и отображаются целиком, никакая часть подсказки более не отсекается.
  • По умолчанию можно изменять размеры окна, открытого при помощи JavaScript, вне зависимости от значения параметра resizable в функции window.open().
  • Наконец-то поддерживаются мягкие переносы, позволяющие браузеру переносить при необходимости длинные слова в местах, помеченных заранее при помощи символа, соответствующего мнемонической HTML-подстановке ­.
  • Родная (а значит, очень быстро работающая) поддержка DOM-метода getElementsByClassName.
  • Поддержка анимированных графических файлов формата APNG (Animated PNG), являющегося обратно совместимым расширением известного и широко используемого открытого формата PNG, поддерживающего, в отличие от широко используемого формата GIF, сохранение полноцветных изображений без каких-либо потерь качества.
  • Поддержка изображений, сохранённых в цветовом пространстве CMYK.
  • Поддержка цветовых профилей в изображениях.
  • Изображения, для которых на странице заданы размеры, не соответствующие физическим, отмасштабированные средствами браузера, теперь выглядят существенно лучше благодаря применению качественной интерполяции. Это достигнуто интеграцией открытой программной библиотеки Cairo, предназначенной для работы с двухмерной графикой. В предыдущих версиях Firefox, как и во всех версиях IE, при масштабировании изображений применялась интерполяция по соседним точкам, дающая недостаточно качественный результат с заметными невооружённым глазом искажениями, особенно на штриховых изображениях.
  • Существенно улучшен рендеринг скруглённых углов посредством CSS-свойства -moz-border-radius (Gecko-аналог CSS3-свойства border-radius, закреплённого в черновике спецификации CSS3 позднее) — форма окружности теперь почти идеальна, при этом используется качественное сглаживание (ранее сглаживания не было). Более того, скругления теперь не только относятся к рамке (border) элемента, но и ограничивают область заливки элемента фоном.
  • Улучшения в поддержке CSS: поддержка значений inline-block и inline-table свойства display, свойства font-size-adjust, значений rgba() и hsla() для свойств, отвечающих за цвет; поддержка новых значений (-moz-max-content, -moz-min-content, -moz-fit-content и -moz-available) свойств width, min-width и max-width, которые, как ожидается, станут (без префикса -moz-) частью стандарта CSS3.
  • Возможность полноценного — в отдельных процессах и с собственными профилями — запуска XUL-приложений прямо из Firefox без необходимости установки XULRunner.
  • Новый Java-плагин, более надёжный (изолирован от браузера на уровне операционной системы) и удобный для пользователя (загрузка Java-апплета больше не влияет на отзывчивость браузера); кроме того, теперь веб-разработчик может задать анимированное GIF-изображение, которое будет отображаться вместо апплета до окончания его загрузки и играть роль некоей панели прогресса.
  • Обработчики протоколов. Веб-приложение может назначить себя (разумеется, с согласия пользователя) в качестве приложения по умолчанию для обработки ресурсов, доступных по определённым протоколам. Например (но не ограничиваясь), по щелчку на mailto-ссылке теперь можно открывать страницу создания нового письма в рамках веб-интерфейса вашей почтовой службы, если она поддерживает эту возможность.
  • Графическая подсистема была переписана с нуля, что дало возможность существенно улучшить в Firefox 3 поддержку кернинга, лигатур, сглаживания и проч.
  • Экспериментальная поддержка API рендеринга текста в рамках HTML-элемента canvas.
  • Поддержка API для работы с микроформатами, в настоящее время, однако, никак не отражённая в стандартном графическом интерфейсе.
  • Поддержка создания офлайновых веб-приложений, что входит в текущий черновой вариант спецификации HTML5.
  • Более удобный диспетчер загрузок:
    • загрузки теперь можно приостанавливать и запускать заново (как вручную, так и автоматически),
    • процесс загрузки теперь наглядно отображается в строке состояния,
    • можно осуществлять поиск по списку загруженных файлов,
    • информация о каждом загруженном файле теперь более подробная,
    • есть возможность повторно посетить исходную страницу, по ссылке с которой был загружен файл.

  • Полноэкранный режим теперь реально полноэкранный, при этом панель вкладок автоматически появляется при подведении указателя к верхней части экрана. Ранее это достигалось расширениями типа FullerScreen.
  • Диалог запоминания пароля теперь не является модальным и не мешает использованию сайта, что, в частности, даёт возможность убедиться в том, что пароль принят сайтом, прежде, чем разрешить браузеру запомнить его.
  • В окно «Дополнения» добавлена новая вкладка — «Плагины», где отображается список установленных плагинов (например, плагины Java, Flash, QuickTime и проч.), которые теперь при необходимости можно легко включать и отключать, не прибегая к помощи расширений.
  • Размер шрифта (либо коэффициент масштабирования — в зависимости от выбранного режима масштабирования) для конкретного сайта запоминается и автоматически применяется при следующей загрузке этого сайта. Ранее такая возможность была доступна лишь при помощи расширений типа No Squint.
  • Механизм предупреждения о потенциально небезопасных веб-страницах улучшен по сравнению с Firefox 2 и теперь выдаёт предупреждение ещё до загрузки страницы.
  • Поддержка некоторых средств родительского контроля, доступных в Windows Vista: например, в диспетчере загрузок для файлов, заблокированных на уровне операционной системы, отображаются сообщения, адекватно описывающие, почему именно доступ к файлу запрещён.
  • Улучшен предпросмотр новостных лент в форматах RSS, Atom и проч.: теперь отображаются и приложенные файлы (enclosures) с указанием имён файлов, их типов, размера и проч. Кроме того, теперь видеоподкасты можно привязать к одному приложению, аудиоподскасты — к другому, а записи всех остальных типов — к третьему.
  • Неактивная вкладка, если перетащить на неё что-либо (например, текст со страницы одного сайта для вставки в текстовое поле на странице другого сайта), через несколько мгновений автоматически становится активной.
  • Можно изменять пропорцию длин адресной и поисковой строк.


См. также:



Оригинальная статья в блоге автора
Tags:firefoxacid2web-стандартыcssбраузеры
Hubs: Firefox
+101
1.3k 29
Comments 125