ブラウザの Ctrl-N ショートカットを変更する

emacs 使いとしては、ブラウザ内の textarea も emacs のキーバインドで操作をしたい。 しかし、 emacs の超基本的なキーバインドの一つ Ctrl-n は ブラウザのデフォル機能の「あたらしいウィンドウを開く」に バインドされていて、クライアントサイドの JavaScript では どうしても上書きできないっぽい。 そこで今回は、ブラウザの Ctrl-n の動作を変更する方法について話をしていく。 結論を最初に書いてしまうと、 限定的な変更はできたが、汎用的ではないので使い勝手が悪くオスス

Android 版 Firefox のアプリ切り替え時の処理

Android 版 Firefox は、 バックグラウンドに切り替えると android の省電力機能によって、 Web ページの状態が保持されず、 アプリをフォアクラウンドに切り替えた際に Web ページがリロードされることがあります。 静的な Web ページであれば、リロードするだけで画面を再構成されます。 セッション管理が必要な Web ページであれば、 Cookie を利用してセッションを復元できます。 Web Extension の場合、通常の Web ページとは異なる制御が必要になります。 省電力機能によって Web Extension のペー

Firefox の File System API (オリジンプライベートファイルシステム)

ブラウザ上で動作するウェブアプリ内のデータは、 基本的に RAM 上で管理されるだけで不揮発には保持されない。 不揮発にデータを保持するには、次の 3 つの方法がある。 Cookie データの本体をサーバ側で記録しておき、 サーバ側で管理しているデータへのアクセスキーをブラウザ側で不揮発に管理する方法。 Web Storage API Key-value 方式の簡易的な DB で、 比較的に小さいサイズのデータをブラウザ側で不揮発に管理する方法。 File System API ブラウザ側のファイルシステムを

ブラウザ(Firefox)の拡張機能で「出来ること」と「出来ないこと」

ブラウザ(Firefox)の拡張機能は、 通常の Web のクライアントサイドプログラム(JavaScript + wasm) では出来ないことが 実現可能になっている。 例えば、拡張機能は表示中の全てのタブ内の情報にアクセスできる。 とはいえ、何でも出来てしまうと、それはそれでセキュリティ上問題になる。 そのため、セキュリティ問題となるようなことはそもそも実現できない。 例えば、ブラウザを実行している環境内のネットワークへの TCP,UDP で

Firefox の拡張機能で additional review が必要な manifest.json の項目

Firefox の拡張機能をインストール可能な状態にするには署名が必要で、 この署名には addons.mozilla.org のレビューが必要になる。 レビューとはいえ基本的には機械的に処理され、 署名処理自体は数分程度で終了する。 しかし中には例外があり、機械的なレビューではなく、 追加レビュー(additional review)が必要なケースが存在する。 では、どんなときに additional review が必要になるか? それは、 manifest.json の項目に依存するらしい。 manifest.json の項目だけでなく、 JS コード