Доступен выпуск Firefox 48.
- Добавлена защита от потенциально нежелательных (например, приложений, меняющих начальную страницу или устанавливающихся обманным путём) и нетипичных файлов (например, сторонних сборок программ с открытым исходным кодом). При попытке загрузить такие файлы, пользователь получит предупреждение, а в менеджере загрузок они будут помечены жёлтым восклицательным знаком (однозначно вредоносные файлы помечаются красным). Защиту можно отключить в настройках на вкладке «Защита».
- При вводе в адресную строку первый пункт выпадающего списка теперь предлагает посетить введённый адрес, а сам список отображается на всю ширину экрана. Настройка
browser.urlbar.unifiedcomplete
, позволявшая вернуть старый вид выпадающего списка, удалена. - Для каждого десятого пользователя, из тех, кто никогда не пользовался дополнениями (всего таких пользователей около 40% от общего числа, по данным телеметрии), включён многопроцессный режим работы. Включению многопроцессности для абсолютно всех пользователей мешает неготовность разработчиков дополнений (совместимость дополнений с многопроцессным режимом). Пользователи могут включить его самостоятельно на свой страх и риск, но несовместимые дополнения перестанут работать.
- Признан стабильным cовместимый с Chrome API дополнений. Уже существует способ устанавливать такие дополнения.
- Отключена поддержка неподписанных дополнений (включается лишь специальным флагом при сборке). Выпущены небрендированные сборки, допускающие установку любых дополнений. Эти сборки доступны лишь на английском языке (можно локализовать, установив языковой пакет), не содержат логотипы и имя Firefox, не поддерживают автоматическое обновление. Кроме того, пользователи могут зарегистрироваться в качестве разработчиков и получить цифровую подпись для подписывания собственных дополнений. Также, существует возможность временной установки любого дополнения (до перезапуска браузера). Mozilla признаёт, что эти меры не гарантируют 100% защиту от вредоносов, но позволят отсеять существенную их часть, поскольку авторы вредоносных программ ленивы и предпочтут переключиться на более доступных жертв. Кроме того, борьба с малварью подразумевает общие усилия со стороны разработчиков браузеров, операционных систем и пользователей.
- «Неподшитые закладки» переименованы в «Другие закладки».
- Добавлены значки, оповещающие пользователя о том, что введённое в адресную строку, уже находится в закладках или открыто в соседних вкладках.
- Новое оформление страницы «Получить дополнения».
- Парсер медиасодержимого переписан на языке Rust. Как показал опыт Android, с помощью медиаформатов можно манипулировать декодерами и эксплуатировать уязвимости в них (Stagefright). Rust нацелен на безопасную работу с памятью, скорость и параллельное выполнение кода.
- Благодаря поддержке Skia производительность Canvas в Linux увеличилась втрое.
- По умолчанию блокируются Flash-элементы, невидимые для пользователя или обладающие очень малым размером (невидимые элементы устанавливают суперкуки, а элементы размером менее 5x5 пикселей используются для определения установленных шрифтов).
- Поддержка HTTP-заголовка upgrade-insecure-requests (1243586).
- Прекращена поддержка macOS 10.6, 10.7 и 10.8
- Властям Казахстана отказано в добавлении их сертификата в доверенные. Причина: сертификат используется для перехвата всего https-трафика в стране.
- Это последняя версия, которая работает на процессорах без поддержки SSE2 (все AMD до Athlon 64 и все Intel до Pentium 4, а также VIA C3 и Transmeta Crusoe)
- В режиме настройки интерфейса теперь можно использовать клавиши Tab (переход между элементами) и Shift+F10 (контекстное меню).
- Различные исправления, связанные с безопасностью.
- На некоторых сайтах, использующих огромное количество cookie, может происходить разлогинивание пользователя.
- Удалена поддержка автодозвона в Windows.
Инструменты разработчика:
- Иерархический просмотр в инструменте оценки потребления памяти.
- Добавлена консоль браузера. В отличие от веб-консоли, она работает для всего браузера, а не для текущей вкладки.
- about:debugging позволяет перезагрузить дополнение или отозвать сервис-воркер.
- Новая тема для Инструментов разработчика в стиле Firebug (1244054).
- Редактор геометрии, позволяющий менять положение элементов на странице простым перетаскиванием (1139187).
- Для очистки вывода консоли реализован console.clear() (659625).
- Детализация сетевых запросов в веб-консоли (1211525).
- Из Firebug портирован Инспектор DOM (1201475).
- Снова включён Инспектор шрифтов (1280121).
- Улучшенные подсказки CSS-свойств (1168246).
- Пошаговая отладка последней строки функции в Отладчике.
HTML:
- Meta-атрибуты теперь поддерживают значения «no-referrer-when-downgrade» и «origin-when-cross-origin» (1178337).
CSS:
- Реализация calc() приближена к спецификациям:
- calc() поддерживает свойство line-height (594933).
- Поддержка вложенных calc() (968761).
- CSS Grids:
- Реализована фрагментация Grid Layout (1144096).
- Строки и столбцы, заданные процентами обрабатываются как «auto», если не определён размер контейнера (1264607).
- <fieldset> поддерживает Grid Layout и Flex Layout (1230207).
- Поддержка значения «luminance» в mask-mode; значение «auto» переименовано в «match-source» (1228354).
- Интерполяция основных форм clip-path в анимациях и переходах (1110460).
- Новое значение «all» свойства text-combine-upright (1097499).
- Экспериментальное свойство «color-adjust», позволяющее веб-странице явно указать на необходимость печати изображений и фона (1209273).
- Правило ::first-letter может применяться к элементам, чьё имя начинается со знаков пунктуации; это требование введено в спецификации CSS Pseudo-element module level 4 (1260366).
- Для совместимости с другими браузерами добавлена поддержка различных свойств и значений с префиксом -webkit. Соответствующая настройка
layout.css.prefixes.webkit
пока выключена:- -webkit-text-fill-color (1247777).
- -webkit-text-stroke, -webkit-text-stroke-color, -webkit-text-stroke-width (1248708).
- -webkit-background-clip:text (в качестве background-clip:text) (759568).
- -webkit-box-direction , -webkit-box-orient (1262049).
- Значение "-webkit-inline-box" является синонимом «inline-flex» свойства display (1257661).
- В качестве синонимов соответствующих безпрефиксных свойств и значений -webkit-flex и -webkit-inline-flex добавлены -webkit-flex-direction, -webkit-flex-wrap, -webkit-flex-flow, -webkit-order, -webkit-flex, -webkit-flex-grow, -webkit-flex-shrink, -webkit-flex-basis, -webkit-justify-content, -webkit-align-items, -webkit-align-self и -webkit-align-content (1274096).
- В качестве синонимов CSS Flexbox добавлены свойства -webkit-box-flex, -webkit-box-ordinal-group, -webkit-box-align, -webkit-box-pack и значение "-webkit-box" (1208635).
- Включена поддержка background-clip:text (1263516).
- Поддержка position: absolute у элементов верхнего слоя (1236828).
- Внутренний синтаксис для @supports (1259889).
JavaScript:
- Новые API:
- Метод ES2015 (ES6) Array.prototype.values() (875433).
- Методы String.prototype.padStart() и String.prototype.padEnd() (1260509).
- Свойства ES2015 (ES6) Symbol.unscopables и Array.prototype[@@unscopables] (1054759, 1258163).
- ES2015 (ES6) Symbol.isConcatSpreadable (1041586).
- Геттер ES2015 (ES6) Array[@@species] (1165052).
- Геттеры ES2015 (ES6) ArrayBuffer[@@species] и %TypedArray%[@@species] (1165053).
- Метод Intl.getCanonicalLocales() из черновых спецификаций ECMAScript Internationalization API (1263040).
- Удалено:
- Устаревший Proxy API (Proxy.create и Proxy.createFunction()). Вместо него следует использовать стандартный обьект Proxy (892903).
- Метод String.prototype.contains() (устарел с версии 40). вместо него следует использовать метод String.prototype.includes() (1103588).
- Нестандартное свойство RegExp.multiline (не RegExp.prototype.multiline). Вместо него следует использовать m flag (1219757).
- Методы __defineGetter__ и __defineSetter__ больше не могут вызываться в глобальной области видимости без какого-либо объекта. (1253016).
Интерфейсы /API / DOM:- Интерфейсы CSSKeyframeRule и CSSKeyframesRule избавились от префикса «Moz» (1256178).
- Миксин NavigatorConcurrentHardware, добавляющий свойство window.navigator.hardwareConcurrency интерфейсу Navigator. Позволяет сайтам и приложениям прикинуть, сколько примерно ядер доступно для запуска воркеров (1008453).
- Вновь реализован удалённый в Firefox 10 метод Node.isSameNode()[, поскольку он был возвращён в спецификации (1256299).
- Если при вызове Navigator.registerProtocolHandler() что-то пошло не так, будут возвращены корректные исключения, вместо цифр.
- Включена поддержка Element.animate() (1245000).
- Реализованы методы Element.insertAdjacentText() и Element.insertAdjacentElement() (811259).
- Включена поддержка свойства Document.scrollingElement (1265032).
- Node.localName, Node.namespaceURI и Node.prefix перемещены в API Element и Attr (1055776).
- Canvas 2D: реализован метод CanvasRenderingContext2D.ellipse() (910138).
- WebRTC:
- Включено подавление эха (Delay-agnostic AEC).
- В GNU/Linux включена полнодуплексная передача.
- Поддержка повторного согласования ICE Restart & Update (906986).
- Клонирование объектов MediaStream и MediaStreamTrack (1208371).
- Пользователи Jabra и веб-камер Logitech C920 избавятся от писклявого голоса, вызванного искажением частот.
- Веб-воркерам доступен Web Crypto API (842818), а также интерфейс CustomEvent (1003432).
- Удалён метод DOMApplicationsManager.getNotInstalled() (1255036).
- Скрыты некоторые API Firefox OS (mozContact, MozContactChangeEvent, navigator.mozContacts, MozPowerManager, MozSettingsEvent), которые по ошибке были доступны из веба (1043562, 1256414, 1256046).
- Из TextEncoder удалена поддержка UTF-16 (1257877).
- RTCStatsReport теперь maplike-интерфейс: вдобавок к forEach(), get() и has() реализованы методы entries(), values(), keys() и геттер «size» (906986).
- Добавлено свойство Request.cache, позволяющее управлять поведением кэша (1120715).
- Удалён нестандартный Web Payments API.
Обзор новостей за последний месяц:
>>> Подробности