LINUX.ORG.RU

Firefox 55

 , ,


3

5

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

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

  • Необратимо изменился формат профиля. Профиль, единожды запущенный в Firefox 55, уже не получится использовать с более ранними версиями.
  • Существенно ускорено восстановление сессий с большим числом вкладок. С 1691 открытой вкладкой открытие браузера теперь занимает 15 секунд вместо 5-8 минут, а потребляемая память снизилась в два раза (сами страницы при этом не загружались).
  • Боковая панель (закладки, история) теперь может быть перемещена к правому краю экрана (раньше она принудительно размещалась слева).
  • Поисковые подсказки включены по умолчанию для всех пользователей, которые явно их не отключили в настройках.
  • Внизу выпадающего списка, появляющегося при вводе текста в адресную строку, размещены значки установленных поисковых систем, что позволяет производить поиск прямо из адресной строки (убрать их можно, установив настройке browser.urlbar.oneOffSearches значение «false»).
  • При наборе адреса сайта без указания протокола Firefox cначала постарается зайти на страницу по протоколу HTTPS, а потом уже по HTTP.
  • Встроенная в браузер защита от отслеживания пользователя теперь в 10 раз замедляет работу скриптов, следящих за пользователем (таких, как Google Analytics), когда пользователь переключается на другую вкладку.
  • В «Настройки → Основные» добавлен раздел «Производительность», позволяющий настроить использование аппаратного ускорения и числа процессов, используемых для обработки контента. Дополнительные процессы улучшают скорость работы с большим числом вкладок, но увеличивают потребление памяти. Кроме того, по умолчанию включено использование отдельного процесса для обработки локальных (file://) файлов, что защитит от чтения локальных файлов при компрометации браузера. Пользователи Windows 10 Anniversary Edition могут там же включить аппаратное ускорение VP9.
  • Для части пользователей включено по умолчанию добавленное в прошлом выпуске системное дополнение, позволяющее сделать скриншот выделенной или видимой области страницы, а также всей страницы целиком. Скриншоты автоматически загружаются на screenshots.firefox.com, где пользователь может установить срок хранения изображения, получить на него прямую ссылку, удалить, поделиться в соцсетях. Для включения дополнения (тем, у кого оно ещё не включилось) необходимо установить настройке extensions.screenshots.system-disabled значение «false». Для отключения добавлена настройка extensions.screenshots.disabled. Исходный код серверной части доступен на условиях лицензии MPL 2.0.
  • Flash-содержимое теперь отображается лишь после явного нажатия на него пользователем (с возможностью запомнить выбор для конкретного сайта). Это изменение будет поэтапно (через соответствующее системное дополнение) доведено до всех пользователей, которые пока могут от него отказаться, переключив настройку plugins.flashBlock.enabled. Кроме того, flash-содержимое будет работать лишь на страницах, загруженных по протоколам HTTP и HTTPS. Для ряда сайтов запуск любых плагинов запрещён полностью с целью обеспечения должного уровня приватности и безопасности. Поддержка flash будет полностью удалена в 2020 году, когда Adobe прекратит разработку плагина.
  • Реализована поддержка устройств виртуальной реальности. Примеры и демо на mozvr.com.
  • На платформе Linux доступен запуск в headless-режиме (флаг «--headless»).
  • Сайты, работающие по незащищённому протоколу, больше не могут получить доступ к Geolocation API, чтобы определить местоположение пользователя.
  • Добавлена настройка privacy.resistFingerprinting, включающая подмену различных свойств (как DOM, так и CSS), облегчающих составление уникального портрета пользователя (screenX, screenY, screen.width, screen.height и т. п.)
  • Упрощён вывод на печать из режима чтения.
  • Возвращена белорусская локализация (нашёлся мейнтейнер).
  • В интерфейсе управления дополнениями теперь наглядно видны устаревшие дополнения, которые перестанут работать в Firefox 57. Подробное объяснение необходимости этого шага от разработчика дополнений. Дополнения, использующие новый API WebExtensions, при изменении списка запрашиваемых разрешений теперь выдают запрос. В главное меню добавлено уведомление о том, что в браузер были установлены дополнения сторонними программами.
  • Пользователи macOS теперь могут назначить собственные горячие клавиши на различные пункты меню Firefox через «Настройки системы → Клавиатура → Горячие клавиши».

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

  • Множество изменений в разделе «Сеть»:
    • Добавлена возможность фильтрации сетевых запросов по значению столбца и другим свойствам (1041895, 1354508, 1354507), а также с помощью регулярных выражений (1354495).
    • Реализована возможность показывать и скрывать отдельные столбцы (862855).
    • Добавлены новые столбцы с удалённым адресом (1344523), протоколом (1345489), схемой (1356867), куками (1356869).
    • Поддержка HTTP-заголовка X-SourceMap удалена в пользу SourceMap (1346936).

HTML:

  • Элементы, у которых contenteditable имеет значение «true», теперь используют <div> для отделения строк текста друг от друга, как в прочих современных браузерах (1297414).
  • Атрибут xml:base больше не может использоваться для указания базового URL путей вместе с атрибутом style, например — <div xml:base="https://example.com/" style="background:url(picture.jpg)"></div> (1350521).
  • Поддержка атрибута scoped у элемента <style> скрыта за настройкой (layout.css.scoped-style.enabled), поскольку прочие браузеры его не поддерживают.
  • Удалена поддержка meta[http-equiv="MSThemeCompatible"]. Прочие браузеры его не поддерживают, также оно вызывало проблемы совместимости (966240).

CSS:

SVG:

  • Реализована поддержка атрибута fr элементом <radialGradient> (1240275).
  • Из спецификации и движка удалены интерфейсы SVGZoomEvent и SVGZoomEvents вместе с атрибутом <svg> «onzoom» (1314388).

JavaScript:

API/DOM:

  • Включена поддержка Background Tasks API (requestIdleCallback), позволяющего отложить вызов функции до тех пор, пока браузер не войдёт в состояние простоя (1314959).
  • На платформе Windows включена поддержка API WebVR 1.1. Этот API позволяет веб-приложениям работать с устройствами виртуальной реальности (например, со шлемами наподобие Oculus Rift и HTC Vive).
  • Реализована поддержка Intersection Observer API (1321865).
  • Свойства scrollX и scrollY объекта Window (и их синонимы pageXOffset и pageYOffset) обрели субпиксельную точность. Вместо того, чтобы возвращать целое число, теперь они возвращают значение с плавающей запятой (1151421). При необходимости можно преобразовать в целые числа с помощью Math.round().
  • MediaQueryList и связанные с ним возможности обновлены в соответствии с последними изменения в спецификации (1354441).
  • Методы DOMTokenList теперь автоматически убирают лишние пробелы и удаляют дублирующиеся токены (869788).
  • Свойство HTMLInputElement «maxLength» теперь может быть динамически изменено с помощью JavaScript после того, как создан HTML-эквивалент (1352799).
  • Конструктор URL() больше не принимает DOMString в качестве базы (2 параметр) — он принимает лишь USVString (1368950).
  • В соответствии со спецификацией обновлены типы событий, поддерживаемых методом Document.createEvent() (1251198).
  • Значение свойства MessageEvent.origin теперь имеет тип USVString, а не DOMString (1311324).
  • Жест «масштабирование щипком» сопоставлен событию wheel + Ctrl (которое обычно используется для масштабирования) (1052253).
  • Удалена поддержка свойства UIEvent.isChar. Оно не поддерживается прочими браузерами и было полностью реализовано лишь на платформе macOS.
  • Удалена поддержка проприетарного Device Storage API (1299500).
  • Удалён параметр «aShowDialog» у нестандартного метода Window.find() (1348409).
  • Удалён метод HTMLFormElement.requestAutoComplete() (см. HTMLFormElement) (1270740).
  • Удалён метод Window.showModalDialog() (981796).
  • HTMLMediaElement и AudioContext лишились поддержки проприетарного Audio Channels API (1358061).
  • Многочисленные обновления Selection API (1318312, 1359371).
  • Для совместимости с WebKit/Blink добавлены Selection.empty() и Selection.setPosition() в качестве ссылок на Selection.removeAllRanges() и Selection.collapse() (1359387).
  • Реализованы методы Storage API StorageManager.persist() и StorageManager.persisted() (1286717).
  • Воркеры могут быть созданы с идентифицирующим их свойством «name» (1364297).
  • Сервисные воркеры:
    • Сообщения, отправленные в контексты сервисных воркеров, теперь представлены объектами MessageEvent вместо ServiceWorkerMessageEvent (1311324).
    • Метод PushManager.subscribe() теперь принимает объекты ArrayBuffer и строки, закодированные Base64, в качестве значений «applicationServerKey» (1337348).
  • Web Audio API: нестандартный конструктор (который принимал строковое значение, указывающее на цель, с которой будет использован контекст) для интерфейса AudioContext выбрасывал ошибки, когда передавался параметр «options». Этот нестандартный конструктор удалён (1361475).
  • WebRTC:
    • getUserMedia() теперь предоставляет по умолчанию звуковой стереопоток, если его предоставляет устройство-источник (971528).
    • getUserMedia() «autoGainControl» и «noiseSuppression» избавлены от префикса moz- (1366415).
    • Исправлена ошибка, из-за которой getUserMedia() некорректно возвращал «NotSupportedError» вместо «TypeError» при вызове с пустым набором ограничений (1349480).
    • getStats() теперь можно вызывать напрямую на отправителях и получателях (1355220).
    • Поле «mozRtt» словаря RTCInboundRTPStreamStats переименовано в «roundTripTime»; поведение также приведено в соответствие спецификации (1344970).
    • Словарь RTCRTPStreamStats теперь включает поля «firCount», «pliCount» и «nackCount». Они предоставляют низкоуровневую информацию, полезную для определения отзывчивости соединения (1348657).
    • Словарь RTCOutboundRTPStreamStats теперь включает поле «framesEncoded», отражающее число успешно закодированных кадров; это позволяет вычислять частоту кадров (1348657).
    • Нестандартные опции «mozDontOfferDataChannel« и «mozBundleOnly» удалены из словаря RTCOfferOptions. Они больше не поддерживаются RTCPeerConnection.createOffer() (1196974).
  • Encrypted Media Extensions API:
    • Firefox допускал использование EME в небезопасных контекстах, что противоречит спецификации. Начиная с Firefox 55 такое использование будет приводить к выдаче предупреждения в консоль (1361000).
    • Firefox не требовал, чтобы как минимум один объект MediaKeySystemCapabilities был включён в параметр «suggestedConfigurations», переданный Navigator.requestMediaKeySystemAccess(), как того требует спецификация. Теперь в консоль будет выведено предупреждение, когда указана любая конфигурация звука или видео без указания поддерживаемых кодеков (428378).
  • WebGL: расширение WEBGL_compressed_texture_s3tc_srgb теперь доступно контекстам WebGL и WebGL2 (1325113).

Безопасность:

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

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

Спасибо.

Долгое время (года два) не мог окончательно определиться, на каком из двух браузеров мне комфортнее.

Жаль, что скоро у лисы настанут тяжкие времена. Но это не впервой, тем более что лиса уже готовится к этому.

SuoiCat ()

Необратимо изменился формат профиля. Профиль, единожды запущенный в Firefox 55, уже не получится использовать с более ранними версиями.

А есть вообще смысл использовать что-то кроме ESR, если ты не разработчик фокса? Это же дрочево - каждый месяц отключать свежие зонды в about:config, узнавать, что нужный тебе плагин больше не работает и т.д. Вот Патрик понял это сто лет назад, и собирает только ESR. К тому же вот этот жизненно необходимый файл http://warfx.ru/ff/preferences/basic/user.js рассчитан под esr, так как нормальные люди не живут у компа.

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

отключать свежие зонды в about:config

Пример зондов в студию.

узнавать, что нужный тебе плагин больше не работает

Обратная сторона того что плагины работают с потрохами браузера. Если это так беспокоит, то стоит ждать версию 57, где есть стабильное WebAPI для плагинов, но старые перестанут работать.

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

Нет. Некоторым сайтам это нафиг не надо и если даже от них угонят пароль, не страшно. Но разработчики скоро совсем забудут что у пользователя должен быть выбор.

InterVi ()

Добавьте в новость

Это последний релиз, в котором можно отключить использование кода на языке программирования Rust. Later versions remove non-Rust codepaths e.g., via encoding_rs.

iZEN ★★★★★ ()

При наборе адреса сайта без указания протокола Firefox cначала постарается зайти на страницу по протоколу HTTPS, а потом уже по HTTP.

чё я так понял аддон https everywhere терь в разряде ненужности?

eR ★★★★★ ()

рекомендуется в about:config настроить:

media.peerconnection.enabled = false
network.http.spdy.enabled = false
geo.enabled = false

в /etc/hosts прописываем:

127.0.0.1 crl.geotrust.com
127.0.0.1 http://www.crl.geotrust.com
127.0.0.1 http://www.gstatic.com
127.0.0.1 gstatic.com
127.0.0.1 http://www.google-analytics.com
127.0.0.1 google-analytics.com
127.0.0.1 googleads.g.doubleclick.net
127.0.0.1 platform.twitter.com

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

Какой–то феерический бред. Не рекомендуется так настраивать, совсем.

network.http.spdy.enabled = false

Зачем своими руками отламывать SPDY и HTTP/2 в браузере? Приступ луддитства? Этот протокол здорово ускоряет загрузку мелких файлов с разных cdn, в том числе с гугловских.

в /etc/hosts прописываем:

127.0.0.1 http://www.

Наличие http://www. как бы намекает на уровень компетенции советчика. Читайте man hosts.

127.0.0.1 crl.geotrust.com
127.0.0.1 http://www.crl.geotrust.com

Зачем отламывать себе верификацию сертификатов? Чтобы работал чужой mitm? Если сильно нужно, это отключается в настройках браузера.

127.0.0.1 http://www.gstatic.com
127.0.0.1 gstatic.com

Поломается recaptcha и thumbnails в выдаче гугла. Зачем?

127.0.0.1 http://www.google-analytics.com
127.0.0.1 google-analytics.com
127.0.0.1 googleads.g.doubleclick.net
127.0.0.1 platform.twitter.com

Поставьте uBlock или uMatrix, Ghostery или RequestPolicy. Зачем через hosts?

Quote ()
Ответ на: комментарий от Lifun

55.0.1 откуда?

Выпущен сегодня.

  • Исправлена регрессия в механизме восстановления вкладок (1388160)
  • Исправлено неотображение страниц «Что нового?» (1386224)
  • Исправлена проблема рендеринга с некоторыми библиотеками PKCS#11 (1388370)
  • Отключена предварительная загрузка ссылок (1388160)
MozillaFirefox ★★ ()
Ответ на: комментарий от eR

чё я так понял аддон https everywhere терь в разряде ненужности?

Отчасти. Но он всё ещё полезен, например, когда на каком-то сайте переходишь по HTTP-ссылке, а сайт, куда переходишь поддерживает HTTPS, но не осуществляет перенаправление HTTP → HTTPS.

MozillaFirefox ★★ ()
Последнее исправление: MozillaFirefox (всего исправлений: 3)
Ответ на: комментарий от kto_tama

media.peerconnection.enabled = false

Зачем? Это отключит WebRTC. Если речь об утечке реального IP, то в Firefox есть уже целых 2(!) способа убрать утечку, не лишаясь WebRTC.

Остальные предлагаемые настройки тоже «ни рыба, ни мясо». Параноикам требуется отключать намного больше (там настроек геолокации далеко не одна штука), а не-параноикам это не надо.

В общем, какие-то полумеры, которые и толку не дадут, и проблем создадут.

MozillaFirefox ★★ ()
Последнее исправление: MozillaFirefox (всего исправлений: 4)
Ответ на: комментарий от lagavulin16

К тому же вот этот жизненно необходимый файл http://warfx.ru/ff/preferences/basic/user.js

Глянул мельком - что-то уже устарело (loop.* нет даже в ESR, его раньше выпилили), а чего-то наоборот нет...

Короче, я бы лучше рекомендовал настройки двачевских анонимусов (ориентированы одновременно на ESR и регулярные выпуски) и, возможно, поглядывать на настройки от портала GHacks (там можно по каждому выпуску отследить появление/удаление/изменение настроек и по некоторым получить понятное описание).

MozillaFirefox ★★ ()
Последнее исправление: MozillaFirefox (всего исправлений: 1)
Ответ на: комментарий от eR

Если владелец сайта не настроил в Apache/nginx автоперенаправление на HTTPS посетителей, пришедших по HTTP, то он и должен это «чинить».

Firefox перенаправляет посетителя на HTTPS лишь в двух случаях: если поступила соответствующая команда от веб-сайта и (теперь) если пользователь ввёл в адресную строку домен без указания протокола.

Если же пользователь, допустим кликает по ссылке http://example.com (а владелец example.com настроил поддержку https, но зашедших по http оставляет на http - встречаются сайты, настроенные именно так), то тут и нужен HTTPS Everywhere.

MozillaFirefox ★★ ()
Последнее исправление: MozillaFirefox (всего исправлений: 4)
Ответ на: комментарий от InterVi

Некоторым сайтам это нафиг не надо и если даже от них угонят пароль, не страшно

Таких сайтов единицы. Но даже они могут быть подвержены вредительству со стороны провайдеров. Тем более наличие HTTPS не сделает хуже, в отличие от отсутствия.

у пользователя должен быть выбор

Вот именно. У пользователя должна быть возможность подключаться к любому сайту по HTTPS.

sudopacman ★★★★★ ()
Последнее исправление: sudopacman (всего исправлений: 1)
Ответ на: комментарий от MozillaFirefox

А что мешает включить перенаправление на HTTPS по умолчанию или хотя бы сделать такую опцию (и избавить пользователей от необходимости в отдельном дополнении)?

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

Хоть и риторический но я отвечу.

У меня линух это рабочий и домашний компьютер а как известно компьютер это прикладные задачи а не компьютер-ради-компьютера. Зачем мне страдать с какой то сборкой ?

P.S. И да, я считаю что мой дистрибут реально сопровождают профи иначе я бы его не использовал.

P.P.S Про HTTPS, насколько я помню раньше ( давно ) был такой плагин который все на HTTPS перенаправляет, потом также давно это воткнули в сам браузер. И что про это написано в новости не совсем понятно ...

mx__ ★★★ ()
Последнее исправление: mx__ (всего исправлений: 2)
Ответ на: комментарий от mx__

Дополнение есть до сих пор - HTTPS Everywhere, его не внедряли в браузер. И оно перенаправляет не всё, а только то, о чём знает (у него внутри список перенаправлений, поддерживаемый сообществом).

MozillaFirefox ★★ ()