Firefox 50

Поздравим передовой веб-браузер Firefox с большим юбилеем и посмотрим, что интересного он нам приготовил.

CSS, HTML

  • Удалена поддержка значения padding-box CSS-свойства box-sizing, которая из популярных браузеров была реализована только в Firefox и потому была удалена из спецификации.
  • Исправлена давняя ошибка, из-за которой скруглённые углы пунктирных (dotted, dashed) рамок ошибочно отрисовывались как сплошные (solid).
  • Размер маркера в UL-списках в Quirks-режиме (на HTML-страницах без правильного DOCTYPE) теперь наследуется, как в режиме соответствия стандартам.
  • Включён по умолчанию беспрефиксный вариант псевдокласса :any-link, являющегося кратким эквивалентом сложного селектора :link, :visited.
  • Поддержка ключевого слова space в значении CSS-свойства border-image-repeat. При использовании значения space изображение размножается целое количество раз с равномерным заполнением промежуточного пространства пустотой.
  • Поддержка атрибута referrerpolicy HTML-элементов A, AREA, IMG, IFRAME и LINK включена по умолчанию. Атрибут referrerpolicy позволяет управлять отправкой заголовка запроса Referer.

JavaScript

  • Поддержка добавления одноразовых обработчиков событий с помощью addEventListener() с параметром once. Такой обработчик автоматически удаляется после первого вызова, что полезно, например, для события DOMContentLoaded, по своей природе наступающего не более одного раза для каждой страницы.
  • Интерфейсы NodeList и DOMTokenList теперь являются итерируемыми и поддерживают методы forEach() (появляется возможность перебирать элементы без необходимости предварительного преобразования DOM-списка в массив, например, с помощью Array.from()), values(), entries() и keys(). Интерфейс NodeList соответствует спискам DOM-узлов, возвращаемых такими DOM-методами, как querySelectorAll(), а интерфейс DOMTokenList — спискам текстовых значений, заданных в значении атрибута с пробелом в качестве разделителя — например, списку классов в атрибуте class, доступному с помощью DOM-свойства classList элемента.
  • Удалена поддержка нестандартных событий dragdrop и draggesture. Теперь для реализации функциональности перетаскивания рекомендуется использовать стандартный HTML Drag and Drop API.
  • Pointer Lock API теперь доступен без префикса. Данный программный интерфейс позволяет отслеживать движение указателя мыши в пределах заданного элемента или без ограничения размеров отслеживаемой области окном браузера или экраном, скрывать указатель мыши и проч.
  • Частичная поддержка нестандартного программного интерфейса (API) File and Directory Entries, благодаря чему улучшена совместимость Firefox с веб-приложениями, написанными в расчёте на браузер Chrome.
  • Ограничение частоты (throttling, clamping) срабатывания функций, вызываемых с помощью window.setInterval() и window.setTimeout() в фоновых вкладках, теперь не применяется к вкладкам, в которых происходит воспроизведение звука средствами Web Audio API. Это полезно, в частности, для аудиоплееров, реализующих воспроизведение форматов (например, трекерных форматов типа MOD или форматов без потерь качества типа FLAC и ALAC), встроенная поддержка которых в браузере отсутствует. Ранее при настройках по умолчанию звук в таких фоновых вкладках воспроизводился прерывисто, и для обхода этой проблемы приходилось отключать ограничение полностью с помощью about:config-параметра dom.min_background_timeout_value, содержащего минимальный период вызова функций в миллисекундах (по умолчанию — 1000, т. е. 1 секунда).
  • WebGL теперь доступен более чем для 98% пользователей Windows 7 и выше.

Прочее

  • Экспериментальная поддержка протокола SPDY 3.1 отключена (за это отвечает about:config-параметр network.http.spdy.enabled.v3-1) в пользу HTTP/2 и будет окончательно удалена в следующей версии Firefox.
  • Поддержка HTTP-заголовка ответа сервера X-Content-Type-Options: nosniff, позволяющего явным образом запретить браузеру определять MIME-тип ресурса на основании косвенных признаков в случаях, когда заголовок ответа Content-Type отсутствует или содержит некорректное значение.
  • Поддержка HTTP-заголовка ответа сервера Referrer-Policy, функционально аналогичного мета-элементу referrer.
  • При текстовом поиске по странице искомый текст теперь при необходимости можно трактовать как слово (или последовательность слов, разделённых пробелом или знаком препинания) нажатием булевой кнопки «Только слова целиком» на панели поиска.
  • Появилась возможность включить альтернативный порядок переключения вкладок сочетанием клавиш Ctrl+Tab (меню «Инструменты» → «Настройки» → «Основные» → «Вкладки» → «Ctrl+Tab переключает между вкладками в порядке недавнего использования»). К счастью, у пользователя есть выбор, использовать ли этот режим (например, для автора этих строк он абсолютно неудобен). По умолчанию порядок переключения вкладок остался прежним.
  • Переключение в режим чтения теперь возможно с помощью сочетания клавиш Ctrl+Alt+R.

См. также официальные примечания к выпуску и информацию для разработчиков.