WebExtensionsとNativeMassagingを実装してみた時に役に立ったもの
自分用まとめ
リンク集
ドキュメント
安定の MDN. 本家のはずの Chrome 方面からはなかなか情報が拾えない感じがする。
- 拡張機能の中身 - Mozilla | MDN
- 全体像はこれがいちばん分かりやすかった。
- Native messaging - Mozilla | MDN
- ネイティブマニフェスト - Mozilla | MDN
- はじめての web-ext - Mozilla | MDN
- Chrome との非互換性 - Mozilla | MDN
- Develop Extensions - Google Chrome
- Native Messaging - Google Chrome
ライブラリ
web-ext は指定のディレクトリ以下にある拡張を自動で読み込んだブラウザを起動してくれ、かつ Hot Reloader してくれる。マジで便利。zip の作成も自動化できる。
URL にこだわらなくてよい時は asset bundler は Parcel が便利。
- parcel-bundler/parcel: Blazing fast, zero configuration web application bundler
- kevincharm/parcel-plugin-web-extension: Parcel plugin for WebExtension projects
- qinshixixing/parcel-plugin-clean-dist: This is a package a parcel plugin which delete the last bundled files before compile.
Firefox でも chrome オブジェクトを参照できるのでそっちに寄せる手もあるけど、一応 Polyfill も挙げておく。callback はイヤなので。ただし、一部メソッドのシグニチャチェックがバグってる気がする。
気づいたこと
- ツールバーの button を押したらとりあえず popup を開くのが基本
- ツールバーの button を押したら「ページ」を開くタイプの拡張は存在しない
- OptionPage を開くアクションをボタンクリックに割り当てる必要あり
- そのためにはロード時点で動作する background script が必要
NativeMessaging については続きをどうぞ。 → NativeMessagingの処理とNativeMessagingHostを作るときのTips