Состоялся релиз web-браузера Firefox 79, а также мобильной версии Firefox 68.11 для платформы Android. Кроме того, сформировано обновление веток с длительным сроком поддержки 68.11.0 и 78.1.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 80, релиз которой намечен на 25 августа.
Основные новшества:
- В менеджере паролей добавлена возможность экспорта учётных данных в формате CSV (текстовые поля с разделителями, которые можно импортировать в табличный процессор). При экспорте пароли помещаются в файл в открытом виде. В дальнейшем также планируется реализовать функцию импорта паролей из сохранённого ранее CSV-файла (подразумевается, что пользователю может потребоваться резервное копирование и восстановление сохранённых паролей или перенос паролей из другого браузера).
- Добавлена настройка для включения динамической изоляции Cookie по отображаемому в адресной строке домену ("Dynamic First Party Isolation", когда свои и сторонние вставки определяются на основе базового домена сайта). Настройка предложена в конфигураторе в секции настройки блокировки отслеживания перемещений в выпадающем блоке методов блокировки Cookie.
- Улучшены средства защиты от отслеживания, автоматически блокирующие Cookie, используемые сторонними счётчиками. Для сайтов, осуществляющих отслеживание, Firefox теперь ежедневно очищает Cookie и данные во внутренних хранилищах, на основании списков систем отслеживания из сервиса Disconnect.me.
- Добавлена предварительная реализация экрана с экспериментальными настройками "about:preferences#experimental", предоставляющего интерфейс для включения экспериментальных возможностей, похожий на about:flags в Chrome. По умолчанию экран пока недоступен и требует для включения установки параметра "browser.preferences.experimental" в about:config. Из доступных для включения экспериментальных возможностей пока предлагается только поддержка "CSS Masonry Layout".
- Для ноутбуков на базе чипов AMD на платформе Windows 10 включена система композитинга WebRender. WebRender написан на языке Rust и позволяет добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU за счёт выноса на сторону GPU операций отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры. Ранее WebRender был включён на платформе Windows 10 для GPU Intel, APU AMD Raven Ridge, AMD Evergreen и на ноутбуках с видеокартами NVIDIA. В Linux WebRender пока активируется для карт Intel и AMD только в ночных сборках, и не поддерживается для карт NVIDIA. Для принудительного включения в about:config следует активировать настройки "gfx.webrender.all" и "gfx.webrender.enabled" или запустить Firefox с выставленной переменной окружения MOZ_WEBRENDER=1.
- Для пользователей из Германии на странице новой вкладки добавлена новая секция со статьями, рекомендованными сервисом Pocket, которые ранее были предложены для пользователей из США и Великобритании. Связанная с подбором контента персонализация выполняется на стороне клиента и без передачи сведений о пользователе третьим лицам (в браузер загружается весь список рекомендованных ссылок на текущий день, который ранжируется на стороне пользователя, отталкиваясь от данных истории посещений). Для отключения рекомендованного Pocket контента предусмотрена настройка в конфигураторе (Firefox Home Content/Recommended by Pocket) и опция "browser.newtabpage.activity-stream.feeds.topsites" в about:config.
- Для Linux-систем с Wayland из-за проблем со стабильностью отключено по умолчанию использование механизма DMABUF для отрисовки видео в текстуры. Для включения в abоut:config предусмотрена переменная "widget.wayland-dmabuf-video-textures.enabled".
- На странице about:support появилась новая кнопка "Сlear Startup cache" для очистки кэшей, влияющих на загрузку браузера. Кнопка может способствовать решению некоторых проблем, возникающих при запуске.
- Ссылки с атрибутом target="_blank" в тегах <a> и <area> теперь обрабатываются по аналогии с использованием атрибута rel="noopener", т.е. воспринимаются как не заслуживающие доверия страницы. Для открытых по данным ссылкам страниц не выставляется свойство Window.opener и не открывается доступ к контексту из которого была открыта ссылка.
- Для iframe в атрибуте sandbox реализован параметр "allow-top-navigation-by-user-activation", разрешающий выполнять навигацию по родительской странице из изолированного iframe при явном клике пользователя на ссылке, но запрещающая автоматический редирект. Опция полезна для размещения баннеров в iframe, позволяя совершать переходы на заинтересовавшую рекламу, но блокируя нежелательную активность (например, автоматический проброс на другие страницы).
- Добавлены новые HTTP-заголовки Cross-Origin-Embedder-Policy (COEP) и Cross-Origin-Opener-Policy (COOP), позволяющие включить особый режим изоляции cross-origin для безопасного использования на странице привилегированных операций, которые могут применяться для осуществления атак по сторонним каналам, таким как Spectre. Режим позволяет изолировать связанные с доменом сайта ресурсы в отдельном процессе, отделив их от ресурсов, загружаемых с других доменов.
- Возвращена поддержка объекта SharedArrayBuffer (позволяет создавать массивы в разделяемой памяти), отключённого после выявления атак класса Spectre. Для обеспечения защиты от Spectre объект SharedArrayBuffer теперь доступен только на страницах, обрабатываемых в режиме cross-origin изоляции. В режиме cross-origin изоляции также разрешено применять не урезанные по точности таймеры Performance.now(). Для определения подобной изоляции следует использовать вышеупомянутые заголовки Cross-Origin-Embedder-Policy и Cross-Origin-Opener-Policy.
- Реализован метод Promise.any(), который возвращает первый выполненный Promise из списка.
- Реализован объект WeakRef для определения слабых ссылок (weak reference) на объекты JavaScript, позволяющие сохранить ссылку на объект, но не блокирующие удаление связанного объекта сборщиком мусора.
- Добавлены новые операторы логического присвоения: "??=", "&&=" и "||=". Оператор "x ??= y" выполняет присвоение, только если "x" принимает значение null или undefined. Оператор "x ||= y" выполняет присвоение, только если "x" имеет значение FALSE, а в "x &&= y" - TRUE.
- Объект Atomics, используемый для организации синхронизации блокировок примитивов, теперь может применяться не только к разделяемой памяти.
- В конструктор Intl.DateTimeFormat() добавлена поддержка опций dateStyle и timeStyle.
- В WebAssembly добавлена поддержка пакетных операций с памятью (для более эффективного моделирования работы memcpy и memmove), многопоточности (Shared memory & Atomics) и ссылочных типов (externref).
- В отладчике JavaScript предложен стек асинхронных вызовов, позволяющий отслеживать асинхронно выполняемые события, таймауты и promise. Цепочки асинхронных вызовов отображаются в отладчике наряду с обычным стеком вызовов, а также приводятся для ошибок в web-консоли и запросов в интерфейсе инспектирования сети.
- В web-консоли обеспечено отображение кодов состояния 4xx/5xx в форме ошибок, что упрощает их выделение на общем фоне. Для упрощения отладки запрос может быть повторён или просмотрены детали о запросе и ответе.
- Ошибки JavaScript теперь показываются не только в web-консоли, но и в JavaScript-отладчике с подсветкой связанной с ошибкой строки в коде и показом всплывающей подсказкой с дополнительной информацией об ошибке.
- Повышена надёжность открытия исходных текстов SCSS и CSS-in-JS в интерфейсе инспектирования. Во всех панелях улучшена обработка сопоставлений с оригинальным исходным кодом на основе source map.
- В инструменты для web-разработчиков добавлена новая панель Application, предоставляющая средства для инспектирования и отладки service worker и манифестов web-приложений.
- В системе инспектирования сети объединены вкладки Messages и Responses.
- В режиме адаптивного дизайна (Responsive Design Mode) обеспечена симуляция жестов касания с перетаскиванием и скольжения при помощи движения мыши, если включён режим симуляции сенсорных экранов.
- Firefox 68.11 для Android станет последним выпуском в ветке. В начале августа планируется постепенный перевод пользователей на новую редакцию, развиваемую под кодовым именем Fenix и проходившую тестирование под именем Firefox Preview. Сборки Firefox 79 для Android переведены на кодовую базу Fenix. Новая редакция использует движок GeckoView, построенный на базе технологий Firefox Quantum, и набор библиотек Mozilla Android Components, которые уже применяются для построения браузеров Firefox Focus и Firefox Lite. GeckoView является вариантом движка Gecko, оформленном в виде отдельной библиотеки, которую можно обновлять независимо, а Android Components включает библиотеки с типовыми компонентами, обеспечивающими работу вкладок, автодополнения ввода, поисковых подсказок и других возможностей браузера. Для работы требуется как минимум Android 5.0 (поддержка Android 4.4.4 прекращена). По умолчанию отключён доступ к about:config.
- Кроме новшеств и исправления ошибок в Firefox 79 устранена 21 уязвимость, из которых 15 помечены как опасные. 12 уязвимостей (собраны под CVE-2020-15659) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.
- Источник - opennet.ru