Chromium 拡張機能のソースコード
Chromium (chrome) は拡張機能が使えることを思い出して、ソースコードの配置場所やドキュメントを調べてみました。拡張機能自体は Google の chrome webstore で多数の extension を配布しています。MS が Edgeブラウザ(chromium ベース)を標準として久しくなりましたが、多数の拡張機能をそのまま取り込むことも狙い一つなのかと推測しています。
ここでは chromium 本体の拡張機能を制御するソースコードとドキュメントの場所を報告します。拡張機能をこれから開発しようとする人は、Manifest.json などのお作法を”覚える”ことから始めると思います。この記事の内容を参照して、プラットフォームとしての chromium がどのような意味で設定ファイルなどを定義しているかが理解しやすくなると思います。
chromium/src/extensions
chromium/src/extensions が拡張機能のソースコードのフォルダです。右側がコマンドプロンプト、左側にExplorerの画面で内容は同じものです。この中で shell は chrome os で使用する機能で、ブラウザとしてのビルドでは使用できないようです。
docs/overview.md
overview.md には 拡張機能のコンセプトが記述されています。なお、拡張機能の開発者は最低限として public extensions documentation を参照することで良いと思います。
ところで Glossary に拡張機能で使用する重要なキーワードが掲載されています。Manifest など拡張機能作成時の最初のハードルがこれで少し下がるかもしれないので、あらかじめ読んで理解しておくことを推奨します。
拡張機能のコミットログ
開発頻度がどの程度かが気になり、git の log を参照してみました。やはり、互換性維持が必要のようで、ソースコードのコミットは頻繁では無い様子です。ただ、Manifest Version が 2 から 3 へ移行しているため、どこかのタイミングで大きなリリースがあるのでは、と思っています。
拡張機能が不要というユーザーには
この記事を参照している人は chromium をカスタマイズして開発している人が多いと思います。拡張機能自体が不要という場合は build における configuration (gn コマンド実行)で extensions を無効 (enable_extensions = false) にできるようです。