Проект Mozilla официально представил релиз web-браузера Firefox 7.0, в состав которого включены давно ожидаемые наработки по сокращению потребления памяти. В ближайшие часы на стадию бета-тестирования перейдет ветка Firefox 8 и будет отделена aurora-ветка Firefox 9. Релиз Firefox 8 ожидается через 6 недель, в середине ноября, а Firefox 9 выйдет в конце года. Кроме того, на сегодняшний день намечены релизы Firefox 3.6.23, Firefox 7 for Android, Seamonkey 2.4 и Thunderbird 7.0.

Ключевые улучшения Firefox 7.0:

    • В состав новой версии интегрированы наработки проекта MemShrink, специально созданного для устранения утечек памяти и решения проблем, связанных с потреблением памяти. В состав новой версии Firefox включены патчи, увеличивающие интенсивность активации сборщика мусора (неиспользуемая память теперь высвобождается более оперативно). Повышена эффективность хранения внутренних структур и оптимизированы различные компоненты, связанные с распределением памяти. Отдельно стоит отметить устранение серьёзной недоработки в JavaScript-движке, приводящей к излишней фрагментации памяти в процессе хранения одномегабайтных блоков для долгоживущих системных объектов (фрагментация из-за смешивания постоянных системных и временных данных).

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

      В результате внесенных в Firefox 7 изменений, потребление памяти при длительном использовании Firefox удалось уменьшить примерно на 20-30%, а в некоторых ситуациях и на 50%;

    • Почти в два раза увеличена производительность javascript-парсера, используемого для разбора загружаемого JavaScript кода на этапе до его непосредственного выполнения. Для интенсивно использующих JavaScript сайтов, таких как Gmail и Facebook, новый парсер обеспечивает ускорение загрузки примерно на 0.1-0.2 секунды;
    • Ускорен запуск браузера на платформах Linux, Windows и Mac OS X. Значительно увеличена производительность вывода анимации при помощи тега Canvas на платформе Windows 7 за счет интеграции поддержки технологии Azure Direct2D. Улучшено качество рендеринга шрифтов на платформе Windows 7 с включённым аппаратным ускорением, которые теперь выглядят чище и отчетливее;
    • В Firefox Sync добавлена поддержка мгновенной синхронизации закладок и паролей;
    • В браузер добавлена опциональная возможность, позволяющая непрерывно накапливать различную информацию о потреблении памяти в процессе работы и учитывать в случае выявления проблем специфичные для данного сеанса параметры, такие как список открытых страниц. Например, собираются данные об изменении отраженных в "about:memory" параметров, числе открытых табов и прочая не привязанная к пользователю статистика. Собранные данные можно просмотреть введя в адресной строке "about:telemetry". Для включения поддержки требуется установка дополнения Telemetry. Сбор статистики включается по желанию пользователя и может быть отключён в настройках;
    • По умолчанию прекращено отображение префикса "http://" в адресной строке и производится чистка корневого слэша после имени домена. Т.е. вместо "http://example.com/" отображается просто "example.com" (при копировании адреса в буфер обмена будет помещаться полный URL). Отображение "https://" сохранилось как прежде, слэш для подразделов также оставлен (например, "example.com/test/");
    • Улучшения для web-разработчиков:
      • В CSS-свойство "Text-Overflow" добавлена поддержка атрибута "ellipsis", нового и более наглядного способа отображения факта, что текст отображен не полностью, так как не входит по размеру в выделенную для его отображения область (добавляется многоточие вместо обрезания на полуслове в случае использования "Text-Overflow: clip");
      • Поддержка спецификации Navigation Timing (WebPerf), позволяющей разработчикам web-приложений используя объект window.performance.timing получить реальные данные о показателях производительности браузера при работе с их сайтами, с учетом времени обработки отдельных элементов и реакции в процессе навигации. Т.е. измерить производительность с точки зрения субъективных ощущений пользователя;
      • Удалено несколько устаревших свойств DOM-объектов и JavaScript-функций (Function.arity(), document.createEntityReference, document.normalizeDocument, Node.getFeature, getAsBinary(), getAsDataURL(), getAsText(), HTMLInsElement, HTMLDelElement, Function.arity и т.п.);
      • Улучшена реализация MathML: добавлена поддержка атрибутов href и voffset; внутри элемента math теперь допускается использование любых атрибутов, свойственных элементу mstyle; поддержка шрифтов Asana Math; поддержка констант для типовых отступов с отрицательными значениями (например, negativethinmathspace эквивалентно -3/18em);
      • Проведена работа по нормализации работы функций Canvas в ситуации передачи некорректных аргументов. Например, игнорируются некорректные значения в drawImage(), setTransform(), bezierCurveTo() и arcTo(), нормально обрабатывается передача нулевых параметров в strokeRect(). В toDataURL() добавлена поддержка дополнительного аргумента, через который можно передать уровень качества для JPEG-изображения;
      • В объекте FileReader реализована поддержка метода чтения содержимого файла в массив readAsArrayBuffer();
      • Для объекта Window добавлена поддержка свойств Window.ondeviceorientation и Window.ondevicemotion для чтения парамеров датчиков перемещения и ориентации экрана;
      • Реализация WebSocket обновлена до восьмой версии протокола;

Из улучшений, специфичных для мобильной версии браузера Firefox 7, доступной для платформы Android, можно отметить:

  • Поддержка копирования текста с произвольных web-страниц в буфер обмена и вставки из буфера обмена в формы ввода. Для выделения текста следует совершить длительное нажатие на нужную позицию экрана после чего не отрывая палец от экрана выделить нужную область;
  • В меню добавлена кнопка "Выход" для завершения работы браузера, а не его сворачивания в фоне. После перезапуска содержимое открытых вкладок восстанавливается.
  • При первом запуске определяется язык, используемый в настройках платформы Android, после чего данный язык автоматически используется для интернационализации интерфейса. Выбрать другой язык можно в настройках браузера.
  • Продолжена работа по увеличению скорости отображения страниц и сокращению времени запуска браузера. Оптимизация производительности и сокращение потребления памяти остаются приоритетными направлениями развития Firefox Mobile;
  • Увеличено качество вывода изображений на планшетах и телефонах на базе чипов Tegra;
  • Добавлена поддержка WebSocket API.

Отдельно стоит отметить, что кроме новшеств и исправления ошибок в Firefox 7.0 и Firefox 3.6.23 устранено несколько уязвимостей. Всего устранено 10 уязвимостей, из которых 8 имеют критический характер и могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

Источник: http://www.opennet.ru/opennews/art.shtml?num=31865