Доступен выпуск Firefox 46.
- Переход на GTK3 по умолчанию, что открывает дорогу к нормальной работе с Wayland и лучшему отображению на HiDPI-мониторах. Поддержка GTK2 пока полностью сохранена.
- Усилена безопасность компилятора JavaScript Just In Time (JIT). Применена технология W^X («Write XOR Execute», изобретена в OpenBSD), гарантирующая, что код, созданный JIT, не будет исполнен, пока не запрещена запись. Скорость работы JS-движка снизилась на 1-4%.
- Pocket, вслед за Hello, стал системным дополнением (не отображается в списке обычных дополнений) и вынесен в отдельный файл (/usr/lib/firefox/browser/features/firefox@getpocket.com.xpi). В следующей версии планируется сделать доступным отключение системных дополнений в интерфейсе браузера.
- Если системные кодеки H.264 и AAC недоступны, для воспроизведения этих форматов будет использоваться CDM-модуль (модуль для расшифровки DRM-содержимого, отсутствующий в Linux-версии).
- Автоматическая замена старого кода <embed> на страницах, встраивающих видео с YouTube, на новый <iframe>, что позволяет просматривать видео средствами HTML5. Функция пока не до конца протестирована и отключена по умолчанию, для использования нужно включить настройку plugins.rewrite_youtube_embeds.
Инструменты разработчика:
- В анализатор использования памяти добавлено отображение косвенного размера объектов (размер объекта + размер объектов, связанных с ним через ссылки).
- В инструмент оценки производительности добавлен новый режим просмотра для обнаружения прожорливых функций и пауз при сборке мусора.
- Создание и отладка слоёв из отзывчивых изображений в боковой панели «@media» редактора стилей.
CSS:
- CSS Grids:
- В функции repeat() разрешены ключевые слова
auto-fill
иauto-fit
(1118820). - Значение
true
переименовано вunsafe
. Затронуты свойства justify-content, align-content, justify-self, align-self, justify-items и align-items (1230478).
- В функции repeat() разрешены ключевые слова
- Включена по умолчанию поддержка свойств text-emphasis, text-emphasis-style, text-emphasis-color и text-emphasis-position (1231485).
- Поддержка некоторых свойств с префиксом
-webkit-
(1213126) - Экспериментальная поддержка дескриптора font-display. Для использования нужно включить настройку layout.css.font-display.enabled (1157064).
- В качестве медиазапроса для 3D-трансформации добавлена поддержка @media (-webkit-transform-3d) (1239799).
- linear-gradient() расценивает 0 как 0deg, а не как команду убрать градиент (1239153).
HTML:
- Столкнувшись с неверным значением
type
, <ul> больше не используетdecimal
, а ведёт себя так, словно значениеtype
не указано (241719). - Атрибут
pattern
с флагом «u» (unicode) тега <input> расценивается как регулярное выражение (1227906).
JavaScript:
- ES2015 (ES6):
- Флаг определения Unicode-последовательностей RegExp (1135377).
- Функции блочного уровня (1071646)
- Метод TypedArray.prototype.sort() (1121937).
- Выражение arguments[@@iterator] (1067049).
- Экспериментальный EcmaScript Shared Memory API: Тип SharedArrayBuffer и объект Atomics. Для использования нужно включить настройку javascript.options.shared_memory.
- Переопределение переменных let и const выбрасывает SyntaxError вместо TypeError (1198833).
- При установке свойств на примитивные значения в строгом режиме будет выброшено TypeError (603201).
- Удалены нестандартные методы WeakMap.prototype.clear() и WeakSet.prototype.clear() (1101817).
- Нестандартное свойство RegExp.multiline объявлено устаревшим (1220457).
- Имена встроенных аксессорных функций получили префиксы «get» и «set» (1180290, 1235656).
- Прекращена поддержка охватывающих массивов и охватывающих генераторов из устаревших спецификаций JS1.7/JS1.8 (1220564).
API/DOM:
- В мультипроцессном режиме более не доступен устаревший метод Window.showModalDialog() (1234700).
- Новый метод document.elementsFromPoint (получение массива элементов по указанным координатам) (1164427).
- Canvas:
- Недостающая часть экспериментального API OffscreenCanvas: конструктор OffscreenCanvas(), методы OffscreenCanvas.toBlob() и OffscreenCanvas.transferToImageBitmap(). Для использования нужно включить настройку gfx.offscreencanvas.enabled (1172796).
- Поддержка метода ImageBitmap.close() (1172796).
- Новый контекст рендеринга ImageBitmapRenderingContext. Для получения контекста следует использовать «bitmaprenderer» с OffscreenCanvas.getContext() или (1172796).
- WebRTC:
- Расширение WEBGL_compressed_texture_es3, позволяющее использовать сжатые текстуры в формате ETC2 (917505). Для использования нужно включить настройку webgl.enable-draft-extensions.
- Сервис-воркеры:
- Свойство FetchEvent.request стало необнуляемым (1238213 ).
- Свойство Navigator.serviceWorker отмечено как SameObject (1238205).
- Свойство ExtendableMessageEvent.ports отмечено как SameObject (1238225).
- Свойство Request.mode обзавелось значением
navigate
, поддерживающим запросы, созданные при переходе между документами (1209081). - Примесь LinkStyle у интерфейса SVGStyleElement (1239128).
- Веб-воркеры обзавелись поддержкой асинхронного чтения файлов через FileReader (901097).
- Web Animations API: реализованы AnimationEffectTimingReadOnly и AnimationEffectReadOnly.timing (1214536).
- Включено по умолчанию Permissions API (1221106)
- Слегка ослаблены требования к шрифтам в формате WOFF (1244693).
Обзор новостей за последний месяц:
>>> Подробности