Релиз Firefox 68
9 июля 2019 года
Представлен релиз web-браузера Firefox 68, а также мобильной версии Firefox 68 для платформы Android. Выпуск отнесён к категории веток с длительным сроком поддержки (ESR), обновления для которых выпускаются в течение года. Кроме того, сформировано обновление прошлой ветки с длительным сроком поддержки 60.8.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 69, релиз которой намечен на 3 сентября.
- Включён по умолчанию новый менеджер дополнений (about:addons), полностью переписанный с использованием HTML/JavaScript и стандартных web-технологий в рамках инициативы по избавлению браузера от компонентов на базе XUL и XBL. В новом интерфейсе для каждого дополнения в форме вкладок обеспечена возможность просмотра полного описания, изменения настроек и управления правами доступа, не покидая основную страницу со списком дополнений.
Вместо отдельных кнопок управления активацией дополнений предложено контекстное меню. Отключенные дополнения теперь явно отделены от активных и перечислены в отдельной секции.
Добавлена новая секция с рекомендуемыми для установки дополнениями, состав которой выбирается в зависимости от установленных дополнений, настроек и статистики по работе пользователя. Дополнения принимаются в список контекстных рекомендаций только если они удовлетворяют требованиям Mozilla в области безопасности, полезности и удобства работы, а также качественно и эффективно решают актуальные задачи, интересные широкой аудитории. Предлагаемые дополнения проходят полное рецензирование безопасности каждого обновления;
- Добавлена кнопка для отправки в Mozilla сообщений о проблемах с дополнениями и темами оформления. Например, через преложенную форму можно предупредить разработчиков при выявлении вредоносной активности, возникновением проблем с отображением сайтов из-за дополнения, не соответствии заявленной функциональности, появления дополнения без действий пользователя или проблемах со стабильностью и производительностью.
- Включена новая реализация адресной строки Quantum Bar, которая внешне и по своим возможностям практически идентична старой адресной строке Awesome Bar, но отличается полной переработкой внутренностей и переписыванием кода с заменой XUL/XBL на стандартный Web API. Новая реализация существенно упрощает процесс расширения функциональности (поддерживается создание дополнений в формате WebExtensions), снимает жёсткие привязки к подсистемам браузера, позволяет легко подключать новые источники данных, обладает более высокой производительностью и отзывчивостью интерфейса. Из заметных изменений в поведении отмечается только необходимость использования комбинаций Shift+Del или Shift+BackSpace (раньше работало без Shift) для удаления записей истории просмотра из результата выводимой при начале ввода подсказки;
- Реализована полноценная тёмная тема для режима читателя (reader view), при включении которой все элементы оформления окна и панели также отображаются в тёмных оттенках (ранее переключение тёмного и светлого режима в Reader View касалось только области с текстовым содержимым);
- В строгом режиме блокировки нежелательного контента (strict), помимо всех известных систем отслеживания перемещений и всех сторонних Cookie теперь также блокируются JavaScript-вставки, осуществляющие майнинг криптовалют или отслеживающие пользователей с помощью методов скрытой идентификации. Ранее данные блокировки включались через явный выбор в настраиваемом режиме блокировки. Блокировка осуществляется по дополнительным категориям (fingerprinting и cryptomining) в списке Disconnect.me;
- Продолжено поэтапное включение системы композитинга Servo WebRender, написанной на языке Rust и выносящей на сторону GPU операции отрисовки содержимого страницы. При использовании WebRender вместо встроенной в движок Gecko системы композитинга, обрабатывающей данные при помощи CPU, для выполнения операций сводной отрисовки элементов страницы используются шейдеры, выполняемые в GPU, что позволяет добиться существенного увеличения скорости отрисовки и снизить нагрузку на CPU.
Помимо пользователей с видеокартами NVIDIA начиная с Firefox 68 поддержка WebRender будет активирована для систем на базе Windows 10 с видеокартами AMD. Проверить активацию WebRender можно на странице about:support. Для принудительного включения в about:config следует активировать настройки "gfx.webrender.all" и "gfx.webrender.enabled" или запустив Firefox с выставленной переменной окружения MOZ_WEBRENDER=1. В Linux поддержка WebRender более-менее стабилизирована для видеокарт Intel c драйверами Mesa 18.2+;
- В меню "гамбургер" в правой части панели с адресной строкой добавлена секция для быстрого доступа к настойкам учётной записи в Firefox Account;
- Добавлена новая встроенная страница "about:compat", на которой перечислены обходные пути и патчи, применяемые для обеспечения совместимости с отдельными сайтами, которые некорректно работают в Firefox. Вносимые для совместимости изменения в простейших случаях ограничиваются сменой идентификатора "User Agent", если сайт жестко привязывается к определённым браузерам. В более сложных ситуациях в контексте сайта запускается JavaScript-код, исправляющий проблемы с совместимостью;
- Из-за потенциальных проблем со стабильностью при переводе браузера в однопроцессный режим работы, при котором формирование интерфейса и обработка содержимого вкладок производится в одном процессе, из about:config удалены настройки "browser.tabs.remote.force-enable" и "browser.tabs.remote.force-disable", которые можно было использовать для отключения многопроцессного режима работы (e10s). Кроме того, установка значения "false" в опции "browser.tabs.remote.autostart" теперь не будет автоматически приводить к отключению многопроцессного режима на настольных версиях Firefox, в официальных сборках и при запуске без включения режима выполнения автоматизированных тестов;
- Реализован второй этап расширения числа вызовов API, которые доступны только при открытии страницы в защищённом контексте ( Secure Context), т.е. при открытии по HTTPS, через localhost или из локального файла. Для страниц, открытых вне защищённого контекста, теперь будут блокироваться запросы к вызову getUserMedia() для получения доступа к источникам мультимедийных данных (например, камере и микрофону);
- Обеспечена автоматическая обработка ошибок при доступе по HTTPS, возникающих из-за активности антивирусного ПО. Проблемы проявляются при включении в антивирусах Avast, AVG, Kaspersky, ESET и Bitdefender модуля защиты Web, который анализирует HTTPS-трафик через подстановку своего сертификата в список корневых сертификатов Windows и подмену на него изначально используемых сертификатов сайтов. Firеfox использует собственный список корневых сертификатов и игнорирует системный список сертификатов, поэтому воспринимает подобную активность как MITM-атаку.
Проблема решена через автоматическое включение настройки "security.enterprise_roots.enabled", при которой дополнительно импортируются сертификаты из системного хранилища. В случае использования сертификата из системного хранилища, а не встроенного в Firefox, в вызываемом из адресном строки меню с информацией о сайте добавлен специальный индикатор. Настройка автоматически включается при определении MITM-перехвата, после чего браузер пытается заново установить соединение и если проблема исчезла - настройка сохраняется. Утверждается, что подобная манипуляция не представляет угрозы, так как в случае компрометации системного хранилища сертификатов, атакующий может скомпрометировать и хранилище сертификатов Firefox (не учитываются возможная подстановка сертификатов производителей оборудования, которые могут применяться для осуществления MITM, но блокируются при использовании хранилища сертификатов Firefox);
- Открываемые в браузере локальные файлы теперь не смогут обращаться к другим файлам в текущем каталоге (например, при открытии в Firefox на платформе Android присланного по почте html-документа, JavaScript-вставка в данном документе могла просмотреть содержимого каталога с другими сохранёнными файлами);
- Изменён метод синхронизации настроек, изменённых через интерфейс about:config. Синхронизируются теперь только настройки, присутствующие в белом списке, который определён в секции "services.sync.prefs.sync". Например, для синхронизации параметра browser.some_preference требуется выставить в true значение "services.sync.prefs.sync.browser.some_preference". Для разрешения синхронизации всех настоек предусмотрен параметр "services.sync.prefs.dangerously_allow_arbitrary", который отключен по умолчанию;
- Реализована техника борьбы с назойливыми запросами на предоставление сайту дополнительных полномочий на отправку push-уведомлений (доступ к Notifications API). Отныне подобные запросы будут молча блокироваться, если не зафиксировано явное взаимодействие пользователя со страницей (клик мышью или нажатие клавиш);
- В окружении для предприятий ( Firefox for Enterprise) добавлена поддержка дополнительных политик кастомизации браузера для сотрудников. Например, администратор теперь может добавить в меню раздел для связи с локальной службой поддержки, добавить ссылки на интранет-ресурсы на страницу открытия новой вкладки, отключить контекстные рекомендации при поиске, добавить ссылки на локальные файлы, настроить поведение при загрузке файлов, определить белый и чёрный списки допустимых и недопустимых дополнений, активировать определённые настройки;
- Решена проблема, которая могла привести к пропаданию настроек (повреждению файла prefs.js) при экстренном завершении процесса (например, при выключении питания без завершения работы или при крахе браузера);
- Добавлена поддержка Scroll Snap, набора CSS-свойств scroll-snap-*, позволяющих управлять точкой остановки ползунка при прокрутке и выравниванием сдвигаемого содержимого, а также выполнять привязку к элементам при инерционной прокрутке. Например, можно настроить прокрутку со сдвигом по границам изображения или с центрированием картинки;
- В JavaScript реализован новый числовой тип BigInt, позволяющий хранить целые числа произвольного размера, для которых недостаточно типа Numbers (например, идентификаторы и значения точного времени раньше приходилось хранить в виде строк);
- Добавлена возможность передачи опции "noreferrer" при вызове window.open() для блокирования утечки сведений о Referrer при открытии ссылки в новом окне;
- Добавлена возможность использования метода .decode() с HTMLImageElement для загрузки и декодирования элементов до их добавления в DOM. Например, данная возможность может применяться для упрощения мгновенной замены компактных изображений-заглушек на догружаемые позднее варианты с высоким разрешением, так как даёт возможность узнать о готовности браузера целиком отобразить новое изображение.
- В средствах для разработчиков реализованы инструменты для аудита контрастности текстовых элементов, которые можно использовать для выявления элементов, некорректно воспринимаемых людьми с ослабленным зрением или нарушенным восприятием цветов;
- В режим инспектирования добавлена кнопка для эмуляции вывода на печать, позволяющая определить элементы, которые могут оказаться невидимыми при печати;
- В web-консоли расширена информация, выводимая вместе с предупреждениями о проблемах с CSS. В том числе добавлена ссылка на соответствующие узлы. В консоли также реализована возможность фильтрации вывода с использованием регулярных выражений (например, "/(foo|bar)/");
- В редакторе шрифтов добавлена возможность корректировки расстояния между буквами;
- В режиме инспектирования хранилища добавлена возможность удаления записей из локального и сессионного хранилищ через выбор соответствующих элементов и нажатие клавиши Back Space;
- В панели инспектирования сетевой активности добавлена возможность блокирования определённых URL, повторной отправки запроса и копирования в буфер обмена HTTP-заголовков в формате JSON. Новые возможности доступны через выбор соответствующих опций в контекстном меню, выводимом при клике правой кнопкой мыши;
- Во встроенном отладчике появилась функция поиска во всех файлах текущего проекта через нажатие Shift + Ctrl + F;
- Изменена настройка для включения отображения системных дополнений: в about:debugging вместо devtools.aboutdebugging.showSystemAddons теперь предложен параметр devtools.aboutdebugging.showHiddenAddons;
- При установке в Windows 10 обеспечено размещение ярлыка в панели задач. В Windows также добавлена возможность использования сервиса BITS (Background Intelligent Transfer Service) для продолжения загрузки обновлений, даже если браузер был закрыт;
- В версии для Android увеличена производительность отрисовки. Добавлен API WebAuthn (Web Authentication API) для подключения к сайту с использованием аппаратного токена или сенсора отпечатков пальцев. Добавлен API Visual Viewport через который можно определить фактическую видимую область с учётом отображения экранной клавиатуры или масштабирования. В новых установках прекращена автоматическая загрузка плагина Cisco OpenH264 для WebRTC.
Кроме новшеств и исправления ошибок в Firefox 68 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.
Firefox 68 стал последним выпуском, вместе с которым сформировано обновление классической редакции Firefox для Android. Начиная с Firefox 69, который ожидается 3 сентября, новые релизы Firefox для Android выпускаться не будут, а исправления будут поставляться в форме обновлений ESR-ветки Firefox 68. На смену классического Firefox для Android придёт новый браузер для мобильных устройств, развиваемый в рамках проекта Fenix и использующий движок GeckoView и набор библиотек Mozilla Android Components(недоступная ссылка). В настоящее время под именем Firefox Preview для тестирования уже предложен первый предварительный выпуск нового браузера (сегодня опубликовано корректирующее обновление 1.0.1 данного предварительного выпуска, но оно ещё не размещено в Google Play).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.