Доступен выпуск Firefox 49.
Основные изменения:
- Голосовое чтение средствами операционной системы в режиме чтения (Reader Mode). Предусмотрена фоновая работа при переключении вкладок, запоминание места при остановке чтения. Также добавлены настройки ширины текста, межстрочных интервалов и цвета фона.
- Прекращена поставка видеочата Hello. Окончательно поддержка Hello будет удалена в следующем выпуске.
- Многопроцессный режим будет включён по умолчанию для пользователей ограниченного списка дополнений, явно совместимых с многопроцессным режимом.
- Интегрирован проприетарный модуль для просмотра DRM-контента, созданный Google (Google Widevine CDM). Пользователи Linux получили возможность пользоваться сервисами Netflix и Amazon Video без необходимости установки Flash или Silverlight. Модуль отключается на странице about:addons. Кроме того, доступны версии браузера без DRM-компонентов (EME-free).
- Включена по умолчанию отрисовка шрифтов средствами Graphite2.
- Блок «Недавно добавленные закладки» (пять последних добавленных пользователем закладок) перенесён из подраздела в основное меню закладок. Убрать их отображение можно с помощью настройки
browser.bookmarks.showRecentlyBookmarked
. - Улучшена производительность воспроизведения видео в случаях, когда отсутствует аппаратное ускорение, но процессор поддерживает SSE3.
- В контекстное меню при воспроизведении медиафайлов HTML5 добавлены команды зацикливания и ускорения (1.25×) воспроизведения. Кроме того, появилась возможность установить уровень громкости по умолчанию.
- Пароли, сохранённые в менеджере паролей для HTTP-страниц, теперь предлагаются на HTTPS-страницах.
- Начальная (отключённая по умолчанию) поддержка TLS 1.3.
- Отключённая по умолчанию возможность убрать лишние элементы перед печатью страницы.
- Прекращена поддержка OS X старше 10.9.
- Поддержка директивы Cache-Control: immutable (1267474). Подробности в блоге.
- Обновлена реализация автоматической настройки прокси (PAC).
weekdayRange
,dateRange
иtimeRange
поддерживают «обратные диапазоны». Например,weekdayRange("SAT", "MON")
вернёт «true», если текущий день является субботой, воскресеньем или понедельником (1251332). - Устранена уязвимость, позволяющая обойти привязку сертификатов (Public Key Pinning). Например, атакующий мог создать копию популярного дополнения, добавив в неё вредоносные функции, сгенерировать фальшивый цифровой сертификат для addons.mozilla.org (для этого нужно получить контроль над каким-либо удостоверяющим центром, что по силам спецслужбам) и организовать MitM-атаку, в результате которой браузер воспринял бы обновление, как легитимное, поскольку из-за уязвимости не смог распознать тот факт, что сертификат выдан не тем УЦ, каким был выдан ранее.
- Улучшено отображение сглаженных шрифтов в macOS и OS X.
- Версия для Windows больше не работает на процессорах, не поддерживающих инструкции SSE2 (все AMD до Athlon 64, все Intel до Pentium 4, VIA C3, Transmeta Crusoe).
Инструменты разработчика:
- На вкладку
about:memory
добавлена оценка потребления памяти шрифтами. - Сообщения об ошибках JavaScript в консоли обзавелись ссылкой на соответствующую документацию (1179876).
- Автодополнение в редакторе правил CSS теперь предлагает больше вариантов (1260419).
- Отображение производительности анимации в Инспекторе анимации (1254408).
- Реорганизовано контекстное меню Инспектора (1211613).
- В режиме разметки больше не отображаются самозакрываемые теги (<br> и <img>), если страница не является XHTML-страницей, где требуется закрытие всех тегов (820926).
- В «Сеть» добавлен столбец «Причина», показывающий причину совершения каждого сетевого запроса. При наведении мыши доступна подсказка с кодом вызова или трассировкой стека JavaScript.
- На вкладке
about:debugging
кнопка «Перезагрузить» активна лишь для временных дополнений (1273184). - На вкладку «Workers» в
about:debugging
добавлено предупреждение, если сервисные воркеры несовместимы с текущими настройками браузера (1266415). - В
about:debugging
добавлен раздел «Вкладки», содержащий список всех доступных для отладки вкладок, открытых в браузере (1266128). - Настройка «Отключить кэш» в расщиренных настройках инструментов разработчика переименована в «Отключить HTTP-кэш», чтобы подчеркнуть, что она не влияет на сервисные воркеры/Cache API (1253018).
HTML:
- Поддержка тегов <details> и <summary> (1226455).
- Атрибут pattern элемента <input> отныне использует параметр «u» в низлежащем JavaScript RegExp (1227906).
- Некорректное значение атрибута kind элемента <track> воспринимается отныне как «metadata», а не как «subtitles» (1269712).
- Атрибут sandbox поддерживает значения «allow-popups-to-escape-sandbox» и «allow-modals» (1190641).
- Удалены поддержка атрибутов «microdata» и Microdata API (909633).
- Атрибут referrerpolicy поддерживает значения «no-referrer-when-downgrade» и «origin-when-cross-origin» (1178337).
- Удалён атрибут form элемента <label> (1268852).
CSS:
- Свойства background-position-x и background-position-y, позволяющие указать смещения при отрисовке фонового слоя (550426).
- В background-repeat добавлена поддержка ключевых слов «round» и «space» (548372).
- В background-clip ключевое слово «text» включено по умолчанию (1264905).
- Возможность указания цвета с прозрачностью, с помощью 4- и 8-знаковых значений color (
#RRGGBBAA
и#RGBA
) (567283). - Убраны префиксы у псевдокласса :dir() (859301) и свойства text-align-last (1039541).
- В length добавлена единица q (1274526).
- Свойство overflow-wrap на замену word-wrap, который по-прежнему доступен в качестве альтернативы (955857).
- CSS Grids:
- Реализована поддержка типа <percentage> для свойств grid-gap, grid-row-gap, grid-column-gap (1266268).
- Поддержка грид-раскладки в align,justify-self:baseline и last-baseline (1221525).
- CSS Masks:
- Свойство mask-origin использует в качестве начального значения «border-box» вместо «padding-box» (1258286).
- Свойство mask-repeat поддерживает значения «space» и «round» (1258626).
- Исправлена ошибка, препятствующая анимации атрибута mask-position (1273804).
- Удалена настройка, управляющая поддержкой text-emphasis, поэтому она не может быть отключена (1229609).
- Добавлена поддержка множества свойств с префиксом
-webkit
.
JavaScript:
- Поддержка ловушек Proxy getPrototypeOf() и setPrototypeOf() (888969).
- Реализованы методы RegExp.prototype[@@match](), RegExp.prototype[@@replace](), RegExp.prototype[@@search]() RegExp.prototype[@@split]() и геттер RegExp[@@species] (887016).
- Удалён устаревший нестандартный аргумент «flags» у String.prototype.match/search/replace (1108382).
- Поведение метода Date.parse() при парсинге дат вида «мм/дд/гг» приближено к реализации в Chromium (1265136).
Интерфейсы, API, DOM:
- API для синтеза и распознавания речи (1276129)..
- Добавлены методы DOMTokenList.supports() (1257849) и DOMTokenList.replace() (1224186).
- Ведущие символы «?» игнорируются в параметре конструктора URLSearchParams() (1268361).
- Значение, возвращаемое URL.origin, HTMLAnchorElement.origin и HTMLAreaElement.origin для ссылок вида «blob: scheme», отныне представляет собой не «null», а исходную ссылку без «blob:» (1270451).
- В режиме предварительной отрисовки свойство Document.visibilityState отныне возвращает «prerender» (1069772).
- Поддержка свойства Window.isSecureContext (1162772).
- Реализованы методы DOM4 ChildNode.before(), ChildNode.after(), ChildNode.replaceWith(), ParentNode.append() и ParentNode.prepend() (911477).
- Удалён метод TouchList.identifiedTouch() (1188539).
- Включена по умолчанию возможность Window для полос прокрутки при вызове Window.open() (1257887).
- Добавлен экспериментальный и нестандартный метод HTMLMediaElement.seekToNextFrame(), позволяющий искать фрейм за фреймом в видеосодержимом (1235301). Метод предназначен лишь для оценки его полезности, но не для повседневного применения.
- Добавлена поддержка третьего параметра EventTarget.addEventListener() (1266164, 1266066).
- Переименованы значения KeyboardEvent.key, связанные с громкостью звука. «VolumeDown» теперь «AudioVolumeDown», «VolumeUp» теперь «AudioVolumeUp», «VolumeMute» теперь «AudioVolumeMute» (1272578). Полный список доступных значений.
- Клавиши, называвшиеся «MozHomeScreen», «MozCameraFocusAdjust» и «MozPhoneCall» переименованы согласно спецификации UI Events: «GoHome», «CameraFocus» и «Call» (1272599).
- Удалены значения «Separator» и «MediaSkip», поскольку они устарели и не использовались (1232919).
- Для старых клавиатур добавлены коды клавиш «Hyper» и «Super» (1232919).
- Для мультимедийных клавиатур добавлены коды клавиш «Key11» и «Key12» (1232919).
- Новые значения для клавиш управления звуком: «AudioBassBoostToggle», «AudioTrebleDown» и «AudioTrebleUp» (123919).
- Новые значения для клавиш управления микрофоном: «MicrophoneToggle», «MicrophoneVolumeDown», «MicrophoneVolumeUp» и «MicrophoneVolumeMute» (123919).
- Новые значения для поддержки устройств распознавания речи: «SpeechCorrectionList» и «SpeechInputToggle» (1232919).
- Новые значения клавиш для поддержки специальных кнопок на телефонах: «AppSwitch», «Call», «CameraFocus», «EndCall», «GoBack», «GoHome», «HeadsetHook», «LastNumberRedial», «Notification», «MannerMode» и «VoiceDial» (1232919).
- Новые значения клавиш: «LaunchContacts» и «LaunchPhone» (1232919).
- Новые значения клавиш для телевизоров: «TV3DMode», «TVAntennaCable», «TVAudioDescription», «TVAudioDescriptionMixDown», «TVAudioDescriptionMixUp», «TVContentsMenu», «TVDataService», «TVInput», «TVInputComponent1», «TVInputComponent2», «TVInputComposite1», «TVInputComposite2», «TVInputHDMI1», «TVInputHDMI2», «TVInputHDMI3», «TVInputHDMI4», «TVInputVGA1», «TVMediaContext», «TVNetwork», «TVNumberEntry», «TVRadioService», «TVSatellite», «TVSatelliteBS», «TVSatelliteCS», «TVSatelliteToggle», «TVTerrestrialAnalog», «TVTerrestrialDigital», «TVTimer» и «DVR» (1232919).
- Значение «MediaSelect» заменено на стандартное «LaunchMediaPlayer» (1272592)
- Поддежка клавиш управления медиаплеерами: «MediaAudioTrack», «MediaSkipBackward», «MediaSkipForward», «MediaStepBackward», «MediaStepForward», «MediaTopMenu», «NavigateIn», «NavigateNext», «NavigateOut» и «NavigatePrevious» (1232919).
- Включено по умолчанию свойство CanvasRenderingContext2D.filter, позволяющее добавлять фильтры к холсту (1173545).
- WebGL:
- Реализовано расширение EXT_color_buffer_float WebGL 2 (1129332).
- Реализовано событие webglcontextcreationerror, отсылаемое, когда попытка создания контекста WebGL провалилась (1271478). Рекомендуется использовать его как при отладке, так и в эксплуатации, для обработки ошибок.
- IndexedDB:
- Добавлена возможность переименовывать индексты IndexedDB; свойство IDBIndex.name отныне доступно не только для чтения (1118028).
- Кроме того, можно переименовывать и IDBObjectStore; свойство IDBObjectStore.name отныне доступно не только для чтения (1118028).
- Сервисные воркеры:
- Объект Response получил свойство redirected, показывающее был ли перенаправлен ответ на запрос (1243792).
- В Permissions API больше не поддерживается PushPermissionDescriptor (1266821).
- Медиапотоки:
- В предыдущих версиях Firefox можно было вызвать MediaDevices.getUserMedia(), который требует аудио и видео даже, если пользователь запретил доступ к одному из соответствующих (но не обоим) устройств. Это исправлено (802326).
- Реализован метод MediaStream.getTrackById() (1208390).
- WebRTC: метод RTCPeerConnection.addTrack() отныне позволяет добавлять к соединению дорожки, не являющиеся частью указанных потоков. Потоки используются для группировки дорожек на принимающей стороне (1271669).
- XMLHttpRequest.getResponseHeader() и XMLHttpRequest.getAllResponseHeaders() теперь возвратят пустые заголовки, если настройка
network.http.keep_empty_response_headers_as_empty_string
установлена в значение «true» (669259). - Удалена поддержка Data Store API, поскольку требуется лишь для Firefox OS (1261009)
- Из Element удалены обработчики событий Fullscreen API Document.onfullscreenchange и Document.onfullscreenerror (1270386).
- Доступные лишь для чтения свойства Document.fullscreenElement и Document.fullscreenEnabled больше не выбрасывают исключение при попытке изменить их значения, новое значение молча игнорируется (1269798).
- Отныне из буфера обмена можно извлекать данные любого типа с помощью DataTransfer.getData() — раньше поддерживались лишь некоторые MIME-типы (860857).
- Из реализации Frame Timing API удалены интерфейсы
PerformanceCompositeTiming
иPerformanceRenderTiming
, поскольку спецификация была полностью переписана (1271846). - Свойство
VTTCue.positionAlign
теперь возвращает перечислениеPositionAlign enum
вместо перечисленияAlign
(1276129). - Веб-манифесты обзавелись поддержкой события install и обработчика события Window.oninstall (1265279).
- При использовании метода Web Audio API AudioContext.createPeriodicWave() теперь можно указать, должна ли результирующая периодическая волна быть нормализована, передав словарный объект в качестве третьего параметра (1265405).
VTTCue.positionAlign
теперь возвращает перечислениеPositionAlignSetting
, раньше он возвращал перечислениеAlignSetting
(1276129).- Конструктор Web Animations API Animation() теперь принимает пустую временную шкалу (1096776).
- WebExtensions:
- Поддержка history API, позволяющего манипулировать элементами истории браузера.
- Метод tabs.removeCSS(), позволяющий убрать стили, которые предварительно были внедрены вызовом tabs.insertCSS().
SVG:
- Удалены поддержка устаревших элементов <altGlyph>, <altGlyphDef> и <altGlyphItem> (1260032).
Обзор новостей:
- Проект Mozilla представил новый отладчик для JavaScript.
- В Firefox будет реализована поддержка WebP.
- Mozilla на пути к ребрендингу.
>>> Подробности