Firefoxのアドオンを作ったのでメモ。ちなみにこちら:
デフォルトのブラウザでリンク先を保存という機能がコンテキストメニューから行えるが、リンク先URLをもとにファイル名が決定されるので、それでは都合が悪い場合があったので、かわりにWebページのページタイトルを使ったファイル名を利用してダウンロードを開始しようとするもの。
要はリンク先の保存のファイル名をページタイトル+拡張子に置き換えるだけの機能(拡張子は存在する場合付与)。 ソース全体はGithubにpushした。ページ下部にリンクあり。
作成にあたって出くわしたエラーなどを記録しておきたい。とくにmozillaのアカウント関連など。
拡張機能の作成
サクッと作るくらいなら、mozilla公式ドキュメンテーションを参考にすれば十分だと思う。
- manifest.jsonの作成
- background.jsの作成
- 適当なアイコンをicons/に作成
- 日本語対応のため_locales/に言語ファイルを作成
行ったことはこのくらい。コンテンツを注入するわけではないのでそういったコンテンツ注入スクリプトは使わない。
また、manifest V3にも対応していない。見かけたチュートリアルがV2だったため。
調べてみた感じでは、この程度の内容ならば、sw.js
への変更も容易だろう。
動作確認
about:debugging
をFirefoxのURLバーに打って、このFirefox
をクリックして拡張機能の一時的なインストールとデバッグを行うことができる。
これは通常のインストールとは異なるので、おそらくFirefoxの再起動で消えるのだと思う。一時的な拡張機能
という名目なので。
拡張機能用のコンソールは拡張機能名の横にある調査
ボタンから開くことができる。
アドオンのAMOへの登録
通常インストールには、署名が必要で、AMO(addons.mozilla.jp)にアドオンを提出しないと署名は不可能。いっそのこと配布も(配布はあまり考えていないが)AMOで行うようにする。
これにはAMOにて、アカウントの作成が必須のようだ。署名してもらわないとstableなFirefoxで通常インストールができない。ESR版だとできるらしい。
どうやらアドオンの新規登録の際には、mozillaアカウントの作成と、2段階認証の設定を有効化しないといけないようだ。どう頑張っても2段階認証の設定を行うページに飛ばされたので、おそらく強制される。
2段階認証の設定が少し曲者で、mozillaのアカウント管理ページから2段階認証の設定を行ったらうまくいった。
なぜ曲者かというと、最初、アドオンを新規登録の画面から2段階認証の設定ページに飛ばされていたので、そこで設定を行うと、バックアップ用確認コードのいずれかを入力する画面でエラーが出ていた。何とかできてうれしい。(なお、このためいったん作成したばかりのGoogle連携アカウントは削除して、改めてメールアドレスの登録からアカウントの作り直しを行った。悲しい。)
登録でエラー
アドオン新規登録時の自動テストでエラーが表示された。
Invalid file name in archive: _locales\en\messages.json
原因: https://github.com/mozilla/addons-linter/issues/4673
つまり、スラッシュが逆向き、\
がダメで、/
を使わなければならない。Compress-Archive
ではなく、7zip
を使ってzipを作れば、問題なかった。7zipで圧縮しましょう。
無事に提出できると、タイミング次第だと思うが半日しないうちに承認されていた。
おわり
無事に署名がされて一安心。ついでに誰かが使ってくれると嬉しい。使いづらいかもしれないけど。バグもある気がする。
コード全体はgithubにある:
以上です。