Релиз Firefox 7.0 и сопутствующих проектов Mozilla
Проект 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. Сбор статистики включается по желанию пользователя и может быть отключён в настройках;
- Улучшения для 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 устранено несколько уязвимостей (полный список уязвимостей пока не обновлен, общее упоминание о наличии критических проблем имеется в примечании к релизу).
© OpenNet