Pale MoonがFirefoxの旧アドオンの仕組みに対応していると聞いて。
Pale Moon用にフォークしているGitHubリポジトリがあったのでclone + Make + インストールしてみた。
インストール自体はできてしまい、おぉ!!と思ったものの、 上記リポジトリは更新が6年前で終わっているし、いろいろ動かなかった。
ということで、エラーコンソールとにらめっこしつつ、フォークして動くようにしたよ。
Build & Install
以下でビルド
$ cd vimperator-pm
$ (cd vimperator/; make xpi)
Building XPI...
Including en-US documentation
Including ja documentation
Replacing UUID, VERSION, DATE and UPDATEURL tags
Packaging up vimperator-3.15.0.xpi
SUCCESS: ../downloads/vimperator-3.15.0.xpi
downloadディレクトリに xpi ファイルが作成されるので、ドラッグ&ドロップでインストールできるよ。
(↑↑普段、こんな丁寧な解説は書かないんだけど、自分が久々すぎて戸惑いながらやったのでw)
雑感
7~8年ぶりくらいにJavaScriptとかXULとかXPCOMを触った。 このあたりはもう完全に古の技術だね。 JavaScriptは現役とはいえ、Vimperatorの中のJavaScriptは昔のMozilla JSの方言が大量に入っていて今のEMCAScript 6thとは別物と言ってよい。
例えば、こんなコードがわりと頻繁に出てくる。
{
__iterator__: function() {
for (let [k, v] in Iterator(obj)) {
// do something
yield v;
}
}
}
__iterator__
は特殊なメソッドでECMAScriptでいうところの*[Symbol.iterator]() {}
- Mozilla JSでは
*
をつけてジェネレータであることを宣言しなくても良い Iterartor(obj)
でobj
の各キー、および値の配列を返すイテレータを生成するfor-in
で回す! (for-of
ではない)
等々
昔は先進的だったのだが……。