ブラウザープラグインのManifestV3対応
マニフェストとは?
こんにちは、こたかです。
今日はブラウザープラグインのマニフェストV3についてのお話です。
ブラウザーには多種ありますが、WindowsではFireFox/Chrome/Edgeが有名です。
Windowsのほとんどのユーザーはこのどれかでブラウジングしていることでしょう。
そして、ブラウザーには拡張機能を追加できます。
この拡張機能には「マニフェスト」として、プラグインがどのような振る舞いをするのか宣言されています。
この宣言から、リソースへのアクセス許可を行うかどうかを判断したりします。
マニフェストV3?
ここ数年、しばらくはマニフェストV2でした。というのもマニフェストV3では機能の制限が厳しくなり、
既存の拡張機能が動作しなくなることが懸念されていたためです。
ブラウザー各種の実装も出遅れ感があり、Chrome,EdgeがマニフェストV3に対応、2023年になってからFireFoxも標準対応してきました。
今年FireFoxが対応し、3大ブラウザーのマニフェストV3対応がそろったため、拡張機能のベンダーも対応を進めてくるかと思います。
対応してみると意外と今まで通りの実装ができる
マニフェストはJSONデータで記載します。マニフェストV3でキー名や書き方に変更があり、コツをつかむまでは何度もブラウザーに却下されてしまいます。FireFoxとChromeでも書き方に違いがあります。
常駐型拡張機能ではメインの動作は「バックグランドスクリプト」に書くことになります。
常時稼働することが許されなくなり、アラームによりたたき起こしてあげないと自動停止してしまいます。これはインパクトのある変更でした。
閲覧制御を行う場合は「tabs」を使用します。表示前のイベント処理で、表示をブロックしたり、ログを収集したりできます。
このあたりの動作は、今までとあまり変わりません。
まとめ
今日はブラウザープラグインがマニフェストV3に進んできているお話でした。
こたかはここ3年ブラウザープラグイン開発も行っていますが、「ネイティブメッセージング」など本になるくらいの情報を見てきました。
基本的にJavaScriptで書けるようになったので、ハードルは下がっています。
ネイティブメッセージングではVC++の知識が大活躍です。VC++は単体で動くのでAPIの架け橋は相性が良かったりします。
それではまた、次の記事でお会いしましょう。