LINUX.ORG.RU

Firefox 54

 ,


0

2

Доступен выпуск Firefox 54.

Основные изменения

  • Отныне Firefox использует несколько процессов при обработке веб-страниц, что позволяет ускорить работу (нагрузка разносится на разные ядра процессора), повысить стабильность (падение вкладки не закроет остальные вкладки) и уменьшить фрагментацию памяти при длительной работе. Многопроцессный режим для веб-содержимого автоматически отключается при обнаружении несовместимых дополнений (за это отвечает настройка extensions.e10sMultiBlocksEnabling). По умолчанию число процессов ограничивается четырьмя (в отличие от подхода Chromium, где выделяется отдельный процесс для каждой вкладки), впрочем, это значение можно изменять с помощью настройки dom.ipc.processCount.
  • Задействована изоляция для ограничения доступа процессов браузера к системным вызовам и файловой системе. На платформе Linux это реализовано с помощью Seccomp-bpf, пользовательского пространства имён и chroot. В Windows применяются библиотеки sandboxbroker и sandboxtarget, разработанные в рамках проекта Chromium.
  • Сведения о загрузках в панели загрузок стали отображаться в более понятном и подробном виде.
  • В меню закладок добавлена папка с закладками, созданными на мобильных устройствах.
  • Включена поддержка объёмного звука (5.1) в Windows, macOS и Linux (1334508, 1321502, 1323659).
  • Удалена поддержка конвейерной обработки HTTP. Усилия, ранее тратившиеся на поддержку конвейерной обработки и решение проблем с её производительностью, целесообразнее пустить на работу над HTTP/2. Все настройки, начинающиеся с «network.http.pipelining», отныне игнорируются (1340655).
  • Добавлено системное дополнение, позволяющее сделать скриншот выделенной или видимой области страницы, а также всей страницы целиком. Скриншоты автоматически загружаются на screenshots.firefox.com, где пользователь может установить срок хранения изображения, получить на него ссылку, либо удалить. Следует учитывать, что дополнение посылает на свой сервер различную информацию (в т. ч. уникальный идентификатор пользователя) ещё до создания скриншота, уже при выборе области (впрочем, информация перестаёт посылаться, если отключить datareporting.healthreport.uploadEnabled). Для включения встроенного скриншотера необходимо установить настройке extensions.screenshots.system-disabled значение «false».
  • Добавлена бирманская (my) локализация.
  • Исправлены различные уязвимости.

Инструменты разработки

  • В мониторинг сетевой активности добавлена сводка с количеством в действительности переданных данных (1168376).
  • Для HTTP-заголовков добавлены ссылки на документацию (1320233).
  • В режиме адаптивного дизайна теперь можно создавать собственные устройства (для тестирования сайтов с заданным разрешением и прочими параметрами устройства).

CSS

  • clip-path теперь поддерживает базовые контуры (1247229).
  • В соответствии со спецификациями CSS Flexbox и CSS Alignment обновлено взаимодействие между свойствами align-items и align-self, а также между justify-items и justify-self (1340309).
  • Элементы <input> типа checkbox и radio с установленным на них -moz-appearance: none; теперь являются незаменяемыми (605985).
  • Исправлена ошибка, из-за которой элемент с display: inline-block, имеющий дочерний элемент типа HTMLInputElement с display:block, имел некорректную базовую линию (1330962).
  • Поддержка стилизованных элементов <option> ранее была удалена из-за проблем с мультипроцессным режимом. Теперь снова можно применять цвета переднего и заднего плана к элементу <option>, используя атрибуты color и background-color (910022).
  • Анимации теперь отсылают событие animationcancel, если анимация завершается преждевременно (1302648).
  • Прозрачные цвета (с нулевым альфа-каналом) всегда сериализовывались в «transparent», что противоречило спецификации (1339394).
  • Проприетарный псевдокласс :-moz-table-border-nonzero больше недоступен веб-содержимому; он доступен лишь внутренним дефолтным таблицам стиля браузера (1341925).
  • Внутреннее содержимое с overflow:auto больше не перекрывает друг друга (1348857).
  • Удалены префиксы у значений isolate, isolate-override и plaintext свойства unicode-bidi property (1333675).

JavaScript

  • Добавлена поддержка модульных скриптов (<script type="module">), скрытая за отключённой по умолчанию настройкой dom.moduleScripts.enabled (1330657).
  • \b и \B в RegExp с флагами «u» (Unicode) и «i» теперь обрабатывают U+017F (LATIN SMALL LETTER LONG S) и U+212A (KELVIN SIGN) как словарные символы (1338373).
  • Конструктор DataView теперь выбрасывает RangeError, если параметр byteOffset не укладывается в Number.MAX_SAFE_INTEGER (>= 2^53) (1317382).
  • Поведение метода Date.UTC() в случаях, когда передано менее двух аргументов, приведено в соответствие со спецификацией ECMAScript 2017 (1050755).

DOM

Воркеры

Звук и видео

  • Streams API: использование объекта MediaStream в качестве входного параметра для URL.createObjectURL() объявлено устаревшим — в консоли будет выведено предупреждение (1334564). Вместо этого следует использовать HTMLMediaElement.srcObject.
  • Web Audio API: теперь метод AnalyserNode.getFloatFrequencyData() корректно отражает сэмплы тишины в возвращённом буфере со значением -Infinity (1336098).
  • Web Audio API: AudioParam.setValueCurveAtTime() теперь выбрасывает исключение TypeError, если любое из указанных значений не является конечной величиной (1308437).
  • Encrypted MediaExtensions API: строка MediaKeySession.keySystem удалена из спецификации (1335555).
  • Encrypted MediaExtensions API: реализована поддержка кодека VP9 в зашифрованных потоках, использующих Clear Key и Widevine (1338064).
  • Encrypted MediaExtensions API: кодек WebM/VP8 теперь активируется независимо от производительности компьютера.
  • WebRTC: включена поддержка TCP ICE, позволяющая работать в сетях, где блокируется UDP (1176382).

>>> Примечания к выпуску для разработчиков

>>> Подробности

★★★★★

Проверено: leave ()
Последнее исправление: Psych218 (всего исправлений: 7)
Ответ на: комментарий от i-rinat

И этим ты показал, что ни капельки не понимаешь, как вообще память используется. Написал такую чушь, что аж жуть.

Чем освобождение памяти вкладкой-процессом отличается от освобождения памяти вкладкой-потоком? Ну кроме того что последним можно более гибко управлять.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

Чем освобождение памяти вкладкой-процессом отличается от освобождения памяти вкладкой-потоком? Ну кроме того что последним можно более гибко управлять.

Это настолько очевидно, что мне сложно это описать. Давай я вместо этого задам тебе несколько наводящих вопросов. Когда ты на них ответишь, мы продолжим разговор более предметно. Тут важно знать, насколько наши знания об управлении памятью пересекаются. Итак.

  • Что будет, если выделить (malloc/new) память в одном потоке, передать указатель в другой поток, и там освободить (free/delete) память?
  • Почему так?
  • Что будет, если выделить (malloc/new) память в одном процессе, передать указатель в другой процесс, и там освободить (free/delete) память?
  • Почему так?
  • Как приблизительно устроен malloc? Как он взаимодействует с ядром Linux?
i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Это настолько очевидно

Да. Фрагментация памяти значительно вырастет поскольку память процесса освободится сразу же после его прибивания, в отличие от ситуации с завершением потока, где выделенная память может быть переиспользована другим потоком. Т.е. у многопроцессности минус даже в этом.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

Фрагментация памяти значительно вырастет поскольку память процесса освободится сразу же после его прибивания

Мда...

Как там, в 40-х? Мы тут недавно отпраздновали шестидесятую годовщину изобретения виртуальной памяти. Не представляю, как вы там без неё обходились. Это было очень неудобно, наверное.

i-rinat ★★★★★
()
Ответ на: комментарий от h578b1bde

Тебе что, ни капельки не стыдно ту бредятину было писать? Или ты просто не осознаёшь степень бредовости своих заявлений?

i-rinat ★★★★★
()
Ответ на: комментарий от h578b1bde

Ты не в теме, одноглазый. Не позорься.

anonymous
()
Ответ на: комментарий от h578b1bde

где выделенная память может быть переиспользована другим потоком

Только такая схема приводит к тому, что после открытия тяжёлой вкладки/множества вкладок единственный путь освободить память - перезапустить браузер.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Только такая схема приводит к тому, что после открытия тяжёлой вкладки/множества вкладок единственный путь освободить память - перезапустить браузер.

А с многопроцессностью единственный путь освободить память — выключить компьютер.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

А с многопроцессностью единственный путь освободить память — выключить компьютер.

У вас браузер полностью не закрывается?

NextGenenration ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.