概要
Firefox用のアドオンの作り方、作ったアドオンの公開方法の解説です。
背景
Webページにほんの少しだけ機能を付け足したいと思うことがありますよね。
私にはあります。それがこれです。

今まで貰った配当金の合計を見てニヤつきたい。でも期間指定をポチポチやるのはダルい。そんなニッチな需要を満たしてくれるアドオンも、作ってくれる暇人もいないので自分で作ることにしました。
やりかた
サンプルを見る
まずFirefoxのアドオン開発者センターで紹介されている初めてのアドオンのサンプルを見てみます。

サンプルには5ファイルありますが、最低限動かすには2ファイルあれば十分なのでそこだけ見ます。
- /
- icons
- LICENSE #ライセンスなのでいらない
- border-48.png #アイコンもなくても動くのでいらない
- README.md #がんばって書いても誰も読まないのでいらない
- borderify.js
- manifest.json
- icons
まずはmanifest.jsonを読みます。
{
"description": "Adds a solid red border to all webpages matching mozilla.org. See https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Examples#borderify",
"manifest_version": 3,
"name": "Borderify",
"version": "1.0",
"homepage_url": "https://github.com/mdn/webextensions-examples/tree/master/borderify",
"icons": {
"48": "icons/border-48.png"
},
"browser_specific_settings": {
"gecko": {
"id": "borderify@mozilla.org",
"data_collection_permissions": {
"required": ["none"]
}
}
},
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}
]
}content_scripts以外は最初はおまじないみたいなものなので読み飛ばしましょう。
URLが “*//*.mozilla.org/*” にマッチしたら、”borderify.js”を実行する、となっています。
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}次にborderify.jsを見ます。
/*
Draw a border round the document.body.
*/
document.body.style.border = "5px solid red";普通のjavascriptです。body全体に5pxの赤線を入れています。
ここをいじれば如何様にもできるということですね。
ということで、manifest.jsonでアドオンが実行されるURLと実行するjavascriptを指定すればよいということがわかりました。
自分のアドオンを作る
manifiest.jsonとcontent.js(サンプルのborderify.jsからリネーム)を修正して欲しいアドオンを作ります。
- /
- manifest.json
- content.js
manifest.json はこのようにしました。
{
"manifest_version": 3,
"name": "SBI Securities Date Range Buttons",
"version": "1.1",
"description": "「今年」ボタンの横に「直近1年」と「全期間」ボタンを追加し、クリックで日付範囲を設定する拡張機能。配当金・分配金履歴ページと損益計算ページに対応。",
"browser_specific_settings": {
"gecko": {
"id": "support@myusei.com",
"data_collection_permissions": {
"required": [
"none"
]
}
}
},
"permissions": [
"scripting"
],
"host_permissions": [
"https://site.sbisec.co.jp/account/assets/dividends*",
"https://site.sbisec.co.jp/account/assets/profits*"
],
"content_scripts": [
{
"matches": [
"https://site.sbisec.co.jp/account/assets/dividends*",
"https://site.sbisec.co.jp/account/assets/profits*"
],
"js": [
"content.js"
]
}
]
}content.jsは長いので省略です。興味があればgithubに上げてあるので見てください。
動作確認
firefoxを起動して、URLバーに “about:debugging” と入力します。
[この Firefox]をクリックします。

[一時的なアドオンを読み込む]をクリックします。

作ったmanifest.jsonを読み込ませます。問題なければ次のように表示されます。

アドオンが動作するはずのページに移動し、意図した動作をしているかを確認します。

問題なければ、manifest.jsonとcontent.jsをzipにかためます。名前も分かりやすい名前に変えておくとよいです。

公開する
Firefoxのアドオン開発者センターにアカウント登録します。
[新しいアドオンを登録]をクリックします。

addons.mozilla.orgで公開するか、他で公開するかを選べます。[On this site.]にしておきます。

[ファイルを選択]をクリックし、作成したzipファイルをアップロードします。

何かからアドオンを生成している場合はソースコードの登録ができますが、今回はjavascript直書きなので「いいえ」で進めます。

アドオンの説明を書きます。

公開できました。(たぶん。審査待ちですがきっと通るでしょう。)


おまけ
参考情報
実現損益にも追加
本題じゃないので流しましたが実現損益のところにも同じボタンを追加しています。



コメント