Secure Login Rebooted

作った。
リポジトリGithub に置いてある
Fork 版とも異なりフルスクラッチ

とりあえず現状では最低限のログイン機能は動く。

内部的には、UI側のコードとページコンテンツのDOMにさわるコードを別にしている。e10s は凍結になったけれども、そっちの方が色々と安全だろうという結論。今のところは nsIObserver でやりとりしてる。

また、gBrowser.addTabsProgressListener() を使うことで、各タブの読み込み時に、それぞれ独立してログイン情報の探索を行うようにしている。本家および Fork 版では、nsIWebProgressListener を使っているので、「現在選択しているタブ」が変わるごとにログイン情報を再探索するのだけど、それに対して Rebooted の実装では、探索回数が減るという利点がある。WeakMap に を鍵にしてログイン情報を保存しているので、メモリーリークも心配ないだろうと踏んでいる。