7月10日、MozillaはFirefox 128のリリースを発表した。今回のリリースでは、Manifest V3(MV3)の改善が追加されている。そもそも開発者の間で批判を受けることも多いMV3とは一体なんなのだろうか?
![](https://res.cloudinary.com/techfeed/image/upload/v1720647372/entries/jzkv4kqqusmiqfh5dq5a.png)
Manifest V3とは何か
Manifest V3とは、ウェブブラウザの拡張機能の設計および動作を規定する仕様である。GoogleがChromeブラウザ向けに開発し、MozillaのFirefoxなど他のブラウザにも適用されている。「manifest.json」と呼ばれる設定ファイルが必要とされており、その最新のフォーマットがManifest V3である。
MV3は、セキュリティの強化やパフォーマンスの向上、ユーザーのプライバシー保護を目的として2019年に発表され、現在は旧バージョンであるMV2からの移行期間とされている。MV2からの主要な変更点には以下が含まれる。
- バックグラウンドページの変更: 従来の永久に動作するバックグラウンドページが廃止され、イベント駆動のバックグラウンドスクリプトに置き換えられた。
- パーミッションの制限: 拡張機能が利用できるAPIや権限が制限され、ユーザーのプライバシーを保護。
- セキュリティ強化: より厳格なコンテンツセキュリティポリシー(CSP)を適用し、悪意あるコードの実行を防止。
Manifest V3に対する批判
しかし、Manifest V3は発表当初から多くの批判にさらされた。特に広告ブロッカーを無力化、もしくは機能低下させるという文脈での批判が多い。MV3は、拡張機能が利用できるネットワークリクエストの数や種類を制限している。これにより、広告ブロッカーが広告を効果的にブロックする能力が低下する可能性がある。
広告ブロッカーは通常、コンテンツフィルタリングやトラッキング防止のために、Webページからの多数のネットワークリクエストをフィルタリングすることで機能する。MV3では、このフィルタリング機能に対して制限が加えられているため、広告ブロッカーが本来の機能を十分に発揮できなくなる可能性がある。具体的には、declarativeNetRequest API が特に問題視されており、従来の動的フィルタリングに比べ、事前に定義されたルールに基づいてネットワークリクエストを処理するため、広告ブロッカーがリアルタイムで新しい広告をブロックする柔軟性が低下する。
Firefoxの対応
MV3のこうした問題を鑑み、FirefoxはMV3の実装にあたり、Chromeの実装から離れて、独自の要素を組み込んでいる。特に批判の多いコンテンツブロックに関する機能については、V3でもV2までと同様の性能を維持できるとされている(ソース:AdGuardブログ)。
また、今回リリースされたFirefox 128では、Manifest V3(MV3)の改善が追加されており、拡張機能開発者は多くの恩恵を受けることができるだろう。詳細はManifest V3 updates landed in Firefox 128 – Mozilla Add-ons Community Blogを参考にしていただきたい。