Доступен выпуск Firefox 44.
- Запрет на установку неподписанных дополнений отложен на два выпуска. Mozilla передумала выпускать специальные версии браузера, где будет разрешена установка таких дополнений. Вместо этого, поддержка неподписанных дополнений сохранится в ESR-версиях (версиях с длительным сроком поддержки). Кроме того, появится поддержка временной установки неподписанных дополнений (которые будут автоматически удаляться после завершения работы).
- Новое оформление страниц с сообщениями об ошибках сертификатов и недоверенных соединениях.
- Задействование системного декодера H.264 (если он доступен). В системах, не поддерживающих MP4/H.264, включена поддержка видео WebM/VP9.
- Поддержка алгоритма сжатия Brotli: заголовки Accept-Encoding и Content-Encoding поддерживают значение «br» (366559, 1211916).
- Удалена поддержка заголовков HTTP/2, содержащих разрывы строк (
'\n'
). Они не разрешены спецификацией HTTP/2, в отличие от HTTP/1 (1197847). - В версиях для Linux и OS X добавлена возможность выполнения отрисовки через WebGL в отдельном потоке, не мешающем работе основного потока обработки контента. Запуск WebGL в отдельном потоке производится при помощи нового API OffscreenCanvas, добавленного в систему Web Worker-ов, предоставляющую средства для фонового выполнения длительных JavaScript-операций. Для включения, необходимо установить опцию
gfx.offscreencanvas.enabled
в значение «true» (709490). API включает интерфейс OffscreenCanvas и методы HTMLCanvasElement.transferControlToOffscreen(), WebGLRenderingContext.commit(). - В движке включены по умолчанию Service worker-ы (предостережение для параноиков).
- Windows-сборки подписаны сертификатами с использованием SHA-256, поскольку Microsoft более не считает надёжными сертификаты с SHA-1.
Инструменты разработчика:
- Возможность щелчком правой кнопки по объекту в консоли сохранить его в качестве глобальной переменной.
- Просмотр и правка ключевых кадров CSS-анимации прямо в Инспектора.
- Визуальный редактор анимации.
- Отображение линеек возле окна просмотра, чтобы быстро определять размер и положение объектов, а также погрешности в расположении и выравнивании.
- Визуальный редактор фильтров CSS .
- Инструмент для инспектирования потребления памяти.
- Поддержка перехвата сетевой активности средствами Service Workers.
- Встроенный просмотрщик JSON.
- Переход определениям функций в отладчике по Cmd-Click
- Переход к API для отладки WebSocket и соответствующее дополнение.
- Новая горячая клавиша «S», соответствующая пункту контекстного меню Инспектора «прокрутить в вид» (1203147).
- Команда для создания снимка экрана теперь позволяет выбрать разрешение.
CSS:
position: fixed;
теперь всегда создаёт контекст стека (1179288).- Поддержка unicode-range (1119062).
- Поддержка значения «sideways» свойством text-orientation (1193488).
- Поддержка значений «sideways-rl» и «sideways-lr» свойством writing-mode (1193488, 1193519).
- Нестандартные свойства "-moz-math-display" и "-moz-window-shadow" больше недоступны из веб-содержимого (1207002, 1211040, 1212607).
- Свойство font-style теперь отличает «oblique» от «italic» (543715).
- Несмотря на отсутствие поддержки, свойства «marks», «orphans», «page», «size» и «widows» анализировались и @supports ошибочно рапортовало, что они поддерживаются; это исправлено: они больше не анализируются и не отображаются поддерживаемыми (1215702).
- Из списка допустимых значений свойства -moz-appearance удалено внутреннее значение "-moz-mac-unified-toolbar" (1206468).
HTML:
- <link rel=«prefetch»> теперь подчиняется атрибуту crossorigin (1214819).
JavaScript:
- Реализованы Symbol.toPrimitive, Symbol.prototype[@@toPrimitive] и Date.prototype[@@toPrimitive] (1054756).
- Изменена семантика биндингов let и const на глобальном уровне (589199). Подробности. Это сломало все дополнения, собранные со старыми версиями JPM. Mozilla самостоятельно пересобрала дополнения, размещённые в официальном каталоге, с новой версией JPM. К сожалению, избежать нарушения совместимости невозможно, старая семантика была несовместима со спецификацией ES2016. Кроме того, перестанут работать все дополнения, собранные с помощью cfx.
- Если конструктор типизированного массива (наподобие Int8Array и ArrayBuffer) вызван как функция без оператора new, будет выброшен TypeError (980945, 1214936).
- Флаг «sticky» конструктора RegExp теперь соответствует спецификации ES2016 для якорных липких регулярных выражений (773687).
- JavaScript shell переведён по умолчанию на стандартную, Web-совместимую версию JS (вместо JS1.7+) (1192329).
- Прекращена поддержка let blocks (1167029).
- Удалено нестандартное и устаревшее свойство Object.prototype.__noSuchMethod__ (683218).
API/DOM:
- DOM & HTML DOM:
- Для совместимости с некоторыми сайтами реализовано свойство Document.charset и сделано синонимом Document.characterSet (647621).
- Удалена поддержка метода window.sidebar.addSearchEngine(), позволявшего веб-страницам вызвать установку Sherlock-плагинов (862148).
- В целях борьбы со всплывающими окнами, запрещён показ сообщений с помощью Window.onbeforeunload, до тех пор, пока пользователь явно не начнёт взаимодействие со страницей (636905).
- В целях обратной совместимости вновь реализован устаревший метод MessageEvent.initMessageEvent() (949376).
- Удалён устаревший DocumentType.internalSubset (801545).
- Для совместимости с некоторыми сайтами реализованы свойства Window.orientation, Window.onorientationchange и событие orientationchange (920734).
- Фреймы с явным запросом полноэкранного режима не должны выходить из него неявно (1187801).
- События mouseover, mouseout, mouseenter, mouseleave, pointermove, pointerover, pointerout, pointerenter и pointerleave теперь срабатывают для отключённых элементов форм (218093).
- Добавлен метод Element.webkitMatchesSelector() (1216193).
- Метод Document.createAttribute() теперь переводит ввод в нижний регистр (1176313).
- WebGL: реализована поддержка Uniform Buffer Objects (1048747).
- IndexedDB: доступны по умолчанию IDBIndex.getAll() и IDBIndex.getAllKeys() (1196841).
- Service Workers:
- Реализованы интерфейсы ServiceWorkerMessageEvent и ExtendableMessageEvent (1143717, 1207068).
- Объекты Headers отныне поддерживают парные итераторы, что означает доступность методов Headers.entries(), Headers.keys() и Headers.values() (1108181).
- XMLHttpRequest API отключён в Service Worker-ах (931243).
- Интерфейс FetchEvent отныне распространяется на ExtendableEvent, давая ему доступ к методу ExtendableEvent.waitUntil() (1214772).
- В соответствии со спецификациями, удалены FetchEvent.client (1218135) и ServiceWorkerContainer.onreloadpage (1218139).
- Удалены обработчики событий ServiceWorkerGlobalScope.onbeforeevicted и ServiceWorkerGlobalScope.onevicted, поскольку они не следовали спецификациям. Будут реализованы позже (1218142).
- Если в конструкторе FetchEvent() член «isReload» отсутствует в словаре вариантов, по умолчанию он принимает значение «false» (1216401).
- Свойство Client.frameType реализовано в правильном интерфейсе; до этого оно было в WindowClient (1218146).
- При использовании AppCache для получения оффлайн-версии страницы, в консоли теперь появляется предупреждение, советующее разработчику использовать вместо этого Service worker-ы (1204581).
- WebRTC:
- Интерфейсы WebRTC избавлены от префикса «moz» (1155923).
- Реализованы свойства RTCDataChannel.bufferedAmountLowThreshold и RTCDataChannel.onbufferedamountlow, а также событие bufferedamountlow (1178091).
- Добавлен атрибут RTCPeerConnection.canTrickleIceCandidates, удалён нестандартный метод RTCPeerConnection.updateIce() (1209744).
- В интерфейс MediaStream добавлена поддержка методов MediaStream.addTrack() и MediaStream.removeTrack() (1103188).
- Реализован конструктор MediaStream() (1070216).
- Объекты URLSearchParams отныне поддерживают парные итераторы, что означает доступность методов URLSearchParams.entries(), URLSearchParams.keys() и URLSearchParams.values() (1085284).
- Объекты FormData отныне поддерживают парные итераторы, что означает доступность методов FormData.entries(), FormData.keys и FormData.values() (1127703).
- При использовании XMLHttpRequest.send() с документом HTML, он будет использовать
text/html
вместоapplication/xml
(918771). - Реализован синтез речи (text-to-speech) в Firefox для Mac и Linux, соответствующая настройка
media.webspeech.synth.enabled
пока отключена (1003452, 1003464). Подробности. - Запрещены полноэкранные элементы внутри <frame> и <object> (1212299).
Безопасность:
- Формы ввода логина и пароля, обращение к которым производится по HTTP, отныне помечаются небезопасными.
- Отключена поддержка RC4 (1201025), очищен «белый» список сайтов, которым было разрешено использовать этот алгоритм (1215796).
- Удалён 1024-разрядный корневой сертификат удостоверяющего центра Equifax.
- Более строгая проверка веб-шрифтов.
- Различные исправления безопасности.
Обзор новостей за последний месяц:
- В Firefox появится совместимый с Chrome интерфейс разработки дополнений.
- Firefox будет поддерживать нестандартные элементы CSS, специфичные для WebKit.
- Mozilla закрывает сервис идентификации Persona.
- В Firefox добавят преобразование блоков Flash-видео в HTML5 для YouTube.
- В Firefox усилят защиту, включив механизм «Write XOR Execute».
- Из Firefox уберут поддержку приложений.