(2018/9/10追記)
作者様がFirefox対応を準備しているようです。ベータ版が公開中!詳しくはこちらから
そしてこの記事はもはや用済みだー
Mouse Dictionaryとは
Chromeブラウザで使用できる、英単語をマウスオーバーすると単語(+熟語)の意味を表示してくれる便利な拡張機能です。
詳しくはこちら
Firefoxで使いたい
本拡張機能はWebExtensionsで実装されているので、おおむねFirefoxでも互換性があるはず。ちょっといじってみたらFirefoxで使えないかなー。
ということで試してみました。
過程とかいいから結果はどうなの、という方はこちらからどうぞ。
手順
manifest.json編集
まずはGithubから一式をダウンロードしてきます。
$ git clone https://github.com/wtetsu/mouse-dictionary
次にsrc/manifest.jsonをいじります。以下の部分が対象です。
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Mouse Dictionary"
},
2か所編集します。
1つは、persistentを削除します。前の行のカンマも忘れずに消しておきましょう。
もう1つは、default_iconを設定します。これがないとアドオンのボタンにアイコンが適用されません。
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_icon": "icon48.png",
"default_title": "Mouse Dictionary"
},
ビルド
node.js(+npm)がいるようです。とりあえず公式サイトからテキトーに最新版(Node.js10.10.0, npm6.4.1)をダウンロードしてきて、インストールしました。
そして、以下のコマンドを実行
$ npm install
$ npm run build
動作確認
Firefoxのアドレスバーからabout:debuggingと入力し、「FireFox 開発ツール デバッガー」を開きます。上部のボタン「一時的なアドオンを読み込む」を押して出てくるダイアログで、先ほど編集したmanifest.jsonを指定します。
結果
一応、動くことは動くっぽい。
ただし、今のところ少なくとも2つ、問題があります。
問題点1. 大きな辞書を食わせるとクラッシュする
アドオンの設定画面から、辞書データを読み込ませることができるのですが、BOOTHで購入してきた「英辞郎」のテキストデータ(約128MB)を読ませたところ、途中でブラウザごとクラッシュしました。
(2018/9/10更新)
問題はFirefoxにおけるメモリの使用量に起因する可能性が高いです。上記の英辞郎データの読み込み時のメモリ使用量はMax7GBにもなり、メモリスワップ領域を少なく設定しているLinux環境などではブラウザがクラッシュする可能性があります。Windowsでは自動的にメモリスワップが行われるため、問題はありませんが、一時的にシステムの動作が鈍くなる可能性があります。
問題点2. 署名しないと不便
上記の方法でアドオンを読み込ませると、ブラウザ終了時にすべての情報が削除されてしまいます(アドオンも、辞書データも)。デバッグ用だから仕方ないんです(むしろ残ったら困る)。それを避けるための手段はアドオンパッケージ(.xpi)を作成してインストールすることです。
xpiは実際はただのzipですので、distフォルダ以下のファイルを全部まとめてzipしてしまえば簡単に作れます。
$ cd dist
$ zip -r mouse-dictionary.xpi *
ただし、このままではFirefoxはセキュリティ上、このxpiを受け付けてくれません。署名が必要で、そのためには開発者登録が必要で、という感じに面倒な手順が必要です。詳しくはこちらを参照願います。
Waterfoxなら未署名のxpiでもインストールできます。
まとめ
・ちょっと修正すれば動く
・大きな辞書ファイルは使えない(要追加検証)
・使うときはFirefoxではなくWaterfox推奨(署名の都合上)
・Firefox版アドオンの正式公開を待とう(あるいはベータ版を試そう)
・Linuxユーザーでデータ読み込み時にブラウザがクラッシュする場合は、メモリをたくさん積む(16GB推奨)か、スワップ領域をたくさん確保しよう