Chrome マニフェストのバージョン 2 および 3 に対する Firefox のサポートの計画

Разработчики из компании Mozilla обновили информацию о планах, связанных с поддержкой в Firefox второй и третьей версий манифеста Chrome. Компания Google в июне этого года намерена прекратить поддержку дополнений, использующих вторую версию манифеста, в тестовых выпусках Chrome 127 (Dev, Canary и Beta). В стабильной ветке поддержка второй версии манифеста будет прекращена не раньше июля.

В свою очередь компания Mozilla не будет в обозримом будущем прекращать поддержку второй версии манифеста, и сохранит возможность запускать дополнения, использующие возможности, недоступные в третьей версии манифеста. Остаётся в силе решение не обеспечивать в Firefox полную совместимость с третьей версией манифеста Chrome. В Firefox будет оставлен полноценный API webRequest, который в Chrome будет переведён в режим только для чтения.

В Firefox также при помощи механизма Event Pages будет сохранена поддержка выполнения фоновых скриптов на базе DOM, вместо которых в третьей версии манифеста предписано использовать Service Workers. Фоновые скрипты на базе Service Workers в Firefox пока не поддерживаются, но разработчикам будет предоставлена возможность определения в дополнении как обработчика на базе Event Pages, так и скриптов на базе Service Workers, что позволит создавать дополнения, соответствующие третьей версии манифеста и работающие в Chrome и Firefox.

Chrome マニフェストは、WebExtensions API を使用して作成された拡張機能で使用できる機能とリソースを定義します。 バージョン 57 以降、Firefox はアドオンの開発に WebExtensions API の使用に完全に切り替えられ、XUL テクノロジーのサポートを停止しました。 WebExtensions への移行により、Chrome、Opera、Safari、Edge プラットフォームでのアドオンの開発を統合できるようになり、異なる Web ブラウザ間でのアドオンの移植が簡素化され、WebExtensions のマルチプロセス モードを完全に使用できるようになりました。操作 (WebExtensions アドオンは、ブラウザーの残りの部分から分離された別個のプロセスで実行できます)。 アドオンの開発を他のブラウザと統合するために、Firefox は Chrome マニフェストの XNUMX 番目のバージョンとのほぼ完全な互換性を提供します。

В рамках инициативы по упрощению создания безопасных и высокопроизводительных дополнений, и усложнению возможности создания небезопасных и медленных дополнений, компания Google разработала третью версию манифеста. Основное недовольство третьей версией манифеста вызвано переводом в режим только для чтения API webRequest, позволявшего подключать собственные обработчики, имеющие полный доступ к сетевым запросам и способные на лету модифицировать трафик. Вместо API webRequest в третьей версии манифеста добавлен ограниченный по своим возможностям API declarativeNetRequest, предоставляющий доступ к встроенному движку для фильтрации, самостоятельно обрабатывающему правила блокировки, не разрешающему использовать собственные алгоритмы фильтрации.

Среди особенностей реализации третьей версии манифеста в Firefox:

  • 新しい宣言型コンテンツ フィルタリング API が追加されましたが、Chrome とは異なり、webRequest API の古いブロック モードのサポートは廃止されていません。
  • Реализован механизм Event Pages, который более привычен для web-разработчиков, не требует полной переработки дополнений и устраняет ограничения, связанные с применением Service Workers. Event Pages позволит привести существующие дополнения с фоновыми страницами к требованиям третьей версии манифеста, сохранив при этом доступ ко всем возможностям, необходимым для работы с DOM.
  • 新しい詳細な権限リクエスト モデル - アドオンは、すべてのページに対して一度にアクティブ化することはできません (「all_urls」権限は削除されています)。ただし、アクティブなタブのコンテキストでのみ機能します。 ユーザーは、アドオンが各サイトで機能することを確認する必要があります。 Firefox では、サイト データへのアクセス要求はすべてオプションとみなされ、アクセス許可の最終決定はユーザーによって行われ、ユーザーは特定のサイト上のデータへのアクセスをどのアドオンに許可するかを選択的に決定できます。

    Для управления полномочиями в интерфейс добавлена кнопка «Unified Extensions» для непосредственного управления тем, к каким сайтам имеет доступ каждое дополнение — пользователь может предоставить и отозвать доступ дополнения к любому сайту. Управление полномочиями применяется только к дополнениям на основе третьей версии манифеста, для дополнений на второй версии манифеста гранулированное управление доступом к сайтам не производится.

    Chrome マニフェストのバージョン 2 および 3 に対する Firefox のサポートの計画
  • クロスオリジンリクエストの処理の変更 - 新しいマニフェストに従って、コンテンツ処理スクリプトは、これらのスクリプトが埋め込まれているメインページと同じ権限制限の対象になります (たとえば、ページがlocation API を使用すると、スクリプト アドオンもこのアクセスを受け取りません)。 この変更は Firefox に完全に実装されています。
  • API на основе Promise. Firefox поддерживает данный API и для третьей версии манифеста.
  • Запрет выполнения кода, загруженного с внешних серверов (речь про ситуации, когда дополнение подгружает и выполняет внешний код). В Firefox применяется блокировка внешнего кода и разработчики Mozilla добавили дополнительные техники отслеживания загрузок кода. Для скриптов обработки контента представлена отдельная политика ограничения доступа к контенту (CSP, Content Security Policy).

出所: オープンネット.ru

コメントを追加します