Аса Доцлер (Asa Dotzler), координатор сообщества разработчиков Firefox, опубликовал план развития Firefox в 2018 году. Основными векторами развития названы повышение производительности, персонализация, новые возможности для мобильных систем, защита интересов пользователя и расширение функциональности инструментария и Web API.

Наиболее важным разделом плана является защита интересов пользователя, в рамках которого запланирована серия возможностей, направленных на устранение практик, мешающих комфортной работе в Web. Например, на третий квартал 2018 года намечена интеграция блокировщика рекламы, по аналогии с блокировщиком, недавно добавленным в Chrome. Виды контента, которые будут блокироваться автоматически пока не утверждены, но наиболее вероятно блокировка будет распространяться на раздражающие виды рекламы, которые не соответствуют критериям, выработанным Коалицией по улучшению рекламы (перекрывающие контент всплывающие окна,
автовоспроизводимая со звуком видеореклама, реклама со счётчиком секунд до закрытия, очень большие закреплённые блоки). Также ожидается блокировка таргетированной рекламы, предлагающей варианты на основе прошлой активности пользователя в сети (отслеживание перемещений и предпочтений).

В третьем квартале также планируется расширить возможности по защите приватности:

  • Все связанные с приватностью настройки будут сведены в одну секцию (план на 3 квартал);
  • Механизм противодействия отслеживанию перемещений будет расширен возможностью выборочной блокировки тех или иных техник отслеживания (план на 3 квартал);
  • Возможно появление автоблокировки кода трекеров, которые негативно влияют на производительности загрузки страниц (план на 3 квартал);
  • Опция для запрета автовоспроизведения видео (план на Firefox 60);
  • Вывод уведомлений об использовании потенциально скомпрометированных учётных записей (план на октябрь).

В области увеличения производительности будет продолжена работа по замене частей движка Gecko на компоненты Servo и оптимизации различных подсистем:

  • Интеграция наработок проекта Quantum Render, основанного на системе композитинга Servo WebRender и привлекающего GPU для обработки графики (планируется в Firefox 64 c поддержкой GPU NVIDIA);
  • Поддержка механизма быстрого открытия TCP-соединений (TFO – TCP Fast Open, RFC 7413), который позволяет сократить число шагов установки соединения за счёт комбинирования в один запрос первого и второго шагов классического 3-этапного процесса согласования соединения и даёт возможность отправки данных на начальном этапе установки соединения (план на Firefox 60);
  • Поддержка механизма ускорения перехода между открытыми вкладками за счёт упреждающей отрисовки содержимого, не дожидаясь явного клика на вкладке. При подведении курсора к вкладке браузер осуществит отрисовку в буфер композитинга и в случае клика мгновенно выводет уже готовое содержимое на экран, устраняя задержку на отрисовку видимых областей. (план на Firefox 61);
  • Загрузка списков блокировки в асинхронном режиме, без негативного влияния на время запуска;
  • API Resize Observer, позволяющий подключить обработчик, которому будут направляться уведомления об изменении размера указанных элементов на странице. Ключевое отличие нового API от window.onresize и CSS Media Queries, заключается в том, что можно определить факт изменения конкретного элемента на странице, а не всей видимой области, что позволяет отреагировать изменением только этого элемента без изменения всего видимого содержимого;
  • Поддержка CSS-свойства contain (CSS Containment), позволяющего предотвратить отображение дочерних элементов за границами блока родительского элемента. Применение contain значительно ускоряет отрисовку, так как гарантирует, что дочерние элементы не выходят за границы родительского блока и достаточно перерисовать только область родительского элемента без применение ресурсоёмких эвристических методов определения изменившихся областей на странице;
  • Поддержка выполнения дополнений в отдельных процессах (уже реализовано для Windows, в течение года ожидается появление в Linux и macOS);
  • Поддержка сетевого протокола QUIC (Quick UDP Internet Connections), решающего проблемы с большим временем установки и согласования TCP-соединений и устраняющего задержки при потере пакетов в процессе передачи данных;
  • Оптимизация интерпретатора JavaScript в движке SpiderMonkey;
  • Ускорение отображения первой страницы – после запуска окно браузера будет показано так быстро как только возможно, без необходимости ожидания пока загрузится весь стек.

В области персонализации изменения в основном связаны с созданием и доставкой дополнений:

  • Намечена интеграция менеджера паролей Lockbox, который решит проблемы с безопасностью в текущей реализации master password, в которой используется ненадёжный метод хэширования на основе SHA-1;
  • В Firefox Accounts появится поддержка многофакторной аутентификации через применение одноразовых паролей с ограниченным временем действия;
  • В Firefox Accounts появится возможность восстановления учётной записи в случае утери пароля;
  • Возможность смены языка интерфейса без переустановки (в настройках можно будет выбрать другой язык и будет загружен связанный с ним языковой пакет);
  • Будет добавлен Policy Manager, дающий администратору возможность централизованной настройки (прокси, закладки по умолчанию) через файл policies.json или Window GPO;
  • Будут расширены возможности по расширению тем оформления (например, можно будет менять оформление полос прокрутки, всплывающих окон и боковых панелей).
  • Для дополнений отмечается появление новых API для управления вкладками, панелями, сеансами, закладками и буфером обмена: Tab Hiding, User Scripts, Toolbar Overlays, Secure Overlays, Session Management, Bookmark Management, Clipboard Interaction.
  • Запланирована серия изменений в каталоге дополнений addons.mozilla.org, например, рекомендации будут формироваться на основе контекста, данных телеметрии и уровня пользователя. При открытии каталога дополнений Firefox из другого браузера будет предоставлена возможность загрузки инсталлятора с Firefox и выбранным дополнением.

Планы по расширению Web-платформы и инструментов для разработчиков:

  • Поддержка модулей JavaScript, определённых в стандарте ECMAScript 6 и
    предоставляющих средства для определения зависимостей и загрузки только необходимых для работы компонентов. Для определения модулей используется тег “script” с флагом “type=module”. Предоставляемая браузером поддержка модулей позволяет без привлечения дополнительных сборочных этапов организовать загрузку зависимостей, параллельно от основного контента, использовать расширенные методы кэширования, отсеивать дубликаты, обеспечить корректный порядок выполнения скриптов (план на Firefox 60);

  • Поддержка изменчивых шрифтов OpenType (variable fonts), в которых толщина, ширина и другие стилистические характеристики глифа могут произвольно меняться. Вместо отдельного описания каждого представления, комбинации возможных вариантов определяются в одном шрифтовом ресурсе через определения возможных delta-отклонений от базового глифа с получением результата через применение интерполяции. Таким образом, вместо использования для каждого стиля своего файла со шрифтом, можно обойтись одним шрифтовым файлом, что значительно сокращает размер данных, необходимых для получения заданного результата (план на Firefox 61);
  • API Web Authentication, предоставляющего средства для обеспечения в web-приложениях надёжной аутентификации на основе открытых ключей (план на Firefox 60);
  • Трехпанельный интерфейс инспектирования (блок Rules может быть вынесен в отдельную панель), позволяющий одновременно изменять и отлаживать CSS (план на Firefox 61);
  • Редактор контуров (Shapes Path Editor), позволяющий на лету изменять параметры CSS Shapes и Clip Paths (план на Firefox 61);
  • Новый инструментарий для работы с шрифтами, учитывающий особенности
    изменчивых шрифтов OpenType;

  • Новый режим инспектирования для отладки модели компоновки элементов страницы flexbox и новый инструмент для анализа выравнивания и размера элементов (план на Firefox 64 и 66);
  • Отдельная панель для отладки Service Workers (план на Firefox 61);
  • Полноценная поддержка Source Map, позволяющая при возникновении ошибки посмотреть переменные и выполнить пошаговую отладку оригинального JavaScript-кода (план на Firefox 61);
  • Контекстные рекомендации по выбору функциональности и расширений в инструментах для разработчиков, основанные на технологиях текущей страницы и уровне квалификации пользователя (план на 3 квартал);
  • Подготовка страницы для пользователей Chrome с обзором отличий и особенностей инструментов для разработчиков Firefox (план на 3 квартал);
  • Инструмент для профилирования производительности для движка GeckoView/Quantum Flow. (план на Firefox 61);
  • Новые средства для удалённой отладки на мобильных устройствах.

Среди планов для мобильных систем:

  • Браузер Firefox Klar (немецкий вариант Firefox Focus) будет переписан и переведён на GeckoView и технологии Quantum.
  • В Firefox Focus появятся функции поиска, автодополнения ввода, блокировки отслеживаний и симуляции запроса из браузера для рабочего стола.
  • Будет продолжена разработка Firefox для FireTV, например, появится родительский контроль.
  • Firefox for iOS будет оптимизирован для iPad и получит по умолчанию защиту от отслеживания перемещений.
  • Приложения для iOS и Android получат возможность совместного доступа к сохранённым паролям.