Firefox 5 для разработчиков: что нового?
Какие нововведения привнесет новейшая версия Firefox, 5-я, для вебмастеров, то есть тех, кто создает сайты? Несмотря на то, что выпуск пятой версии Firefox состоялся лишь через 3 месяца после 4-й, нововведений довольно много, они коснулись HTML, canvas, CSS, DOM, JavaScript, SVG, и даже HTTP. И это замечательно! Главное - значть что именно изменилось, для чего и был подготовлен этот перевод на русский язык материала Firefox 5 for developers - Что нового в Firefox 5 для разработчиков.
HTML
- Все элементы HTML теперь имеют атрибут accessKey, так же, как и методы blur() , click() и focus() . Все они представлены в интерфейса HTMLElement.
- В целях следования спецификации HTML5, поддержка чарсетов UTF-7 и UTF-32 была отключена.
- В режиме совместимости (т. н. quirks mode), пустые элементы
- Мобильный Firefox для Android теперь поддерживает шрифты WOFF для @font-face .
- WebGL более не загружает текстуры с других доменов в целях предотвращении скросс-доменных инъекций. Поддержка HTTP access control с будущем поможет решить эту проблему с безопасностью.
Canvas
- Двумерный (2D) контекст <canvas> теперь поддерживает объект ImageData в качестве значения для метода createImageData(). Это создает новый объект ImageData, уже проинициализированный теми же размерами, но со остающимся битмэпом вида «прозрачный черный». Это было реализовано несколько ранее, но в документации появилось только теперь..
- При указании неверных значений при добавлении стоп-цветов при вызове метода addColorStop() для CanvasGradient теперь вызывает верное исключение INDEX_SIZE_ERR вместо SYNTAX_ERR.
- Метод toDataURL() объекта HTMLCanvasElement теперь корректно предобазует типы MIME в нижний регистр перед сравнением на совпедение.
- getImageData() теперь коректно рапознает прямоугольные области, выходящие за границы canvas; пикселы вне пределов canvas возвращаются «прозрачными черными».
- Методы drawImage() и createImageData() теперь поддерживают отрицательные значения, и в соответствии со спеификациями преобразуют координаты путем зеркального отображения от координатной оси.
- При указани недопустимых значений для createImageData() теперь вызывается исключение NOT_SUPPORTED_ERR.
- Функции createImageData() и getImageData() теперь возвращают 1 пиксель, даже если в указанном прямоугольнике указан меньший размер.
- Указание отрицательного радиуса при вызове createRadialGradient() теперь вызывает верное исключение INDEX_SIZE_ERR.
- Попытка указать null или undefined для изображения при выхове createPattern() или drawImage() теперь вызывает исключение TYPE_MISMATCH_ERR.
- Указание неверных значений для globalAlpha более не вызывает исключения SYNTAX_ERR: теперь это просто игнорируется.
- Указание неверных значений для translate(), transform(), rect(), clearRect(), fillRect(), strokeRect(), lineTo(), moveTo(), quadraticCurveTo() и arc() более не вызывает исключений; такие выховы теперь игнорруются.
- Так же теперь игнорируются и не вызывают исключений попытки присвоить неверные значения для shadowOffsetX, shadowOffsetY и shadowBlur, а так же для rotate и scale.
CSS
- Добавлена поддержка CSS animations. Пока что для использования анимационных эффектов CSS следует использовать префикс -moz- перед соответствующими определениями в таблицах стилей.
DOM
- Метод modify() объекта selection изменен таким образом, что выбор слов более не включает пробелы. Это делает его лучше совместимым между платформами и с движком WebKit.
- Метод window.setTimeout() теперь не сможет отправлять более одного запроса в секунду для неактивных вкладок. В то же время, в соответствии с требованиями HTML5, для активой вкладки это значение можеттеперь составлять 4мс вместо 10 мс ранее.
- Аналогично setTimeout, метод window.setInterval() так же может посылать более 1 запроса в секунду для неактивной вкладки.
- Объект XMLHttpRequest теперь поддерживает событие loadend event для отслеживания прогресса. Это событие возникает после завершения передачи данных (в частности, при abort, error, и load). Вы можете использовать событие loadend для выполнения действий, которые должны быть выполнены в любом случае.
- Функции Blob и метод slice() объекта file удалены. Вместо них теперь следует использовать mozSlice() , который лучше совместим со стандартами JavaScript, в частности, с Array.slice() и String.slice().
- Значение window.navigator.language теперь определяется исходя из данных HTTP-заголовка Accept-Language.
- В целях обеспечения полной совместимости со стандартами DOM, свойство Node.prefix теперь доступно только для чтения
JavaScript
- Регулярные выражения более не могут быть вызваны в качестве функций, это сделано с целью обеспечения лучшей совместимости с WebKit (данное изменение было введено ранее, но не было документировано).
- Метод Function.prototype.isGenerator() теперь поддерживается. Это позволяет определить, является ли функция генератором.
SVG
- Атрибут class SVG элементов теперь может быть анимированным (см. выше про CSS Animations).
- Следующие входящие в DOM интерфейсы SVG, представленные как списки объектов,теперь могут быть представлены в виде массивом и индексируются: SVGLengthList , SVGNumberList , SVGPathSegList и SVGPointList . Кроме того, у них теперь имеется свойство length, указывающее на число элементов.
HTTP
- Firefox более не отправляет заголовки "Keep-Alive", поскольку это было избыточным, т. к. в любом случае отправлялись Keep-Alive для Connection: или Proxy-Connection:.
- Модель HTTP-транзакций была обновлена в целях оптимизации повторного использования соединений. Вместо потоков очереди очереди FIFO, Necko (сетевой движок Mozilla) теперь пытается отсортировать пул соединений, чтобы выбрать наиболее приоритетные (для активного окна — CWND) в первую очередь. Это позволит сократить RTT HTTP-транзакций в большинстве случаев.
- Firefox теперь более эффективно поддерживает HTTP-заголовок Content-Disposition. Это позволяет лучше поддерживать параметры filename и filename*. Теперь сначала всегда рассматривается параметр filename*, даже если filename указан первым.
MathML
- Добавлена поддержка embellished operators в MathML
- Инструменты разработчика
- Для Web Console объект Consolle теперь поддерживает метод debug() в качестве алиаса для метода log(). Это улучшает совместимость для некоторых случаев.
Оригинал находится на сайте MDN. Если вы найдете неточности в переводе, пожалуйста, сообщите через обратную связь или на форуме.
2011-06-22