私は現在、ユーザーのUbuntuシステムで現在実行されているFirefoxセッションの状態を知るのに機能が依存するソフトウェアを開発しています。次の情報を知る必要があります。
- 窓は何個開いていますか?
- 各ウィンドウにはいくつのタブがありますか?
- 各タブで現在開いているURLは何ですか?
- ユーザーが各タブでどのくらいスクロールしましたか?
ユーザーから明示的なコマンドを受け取った後、アプリケーションはシステム内のどこでもこの情報を探します。問題は、これを見つけるためにアプリケーションをどこでプログラムする必要があるのかわからないということです。私の最初の推測は、カーネルでFirefoxプロセスをチェックすることで必要な情報を得ることができるということでしたが、システムモニタを使用してより多くのウィンドウとタブが開いたときに開始される他のプロセスを監視しましたが、言及された唯一のFirefoxプロセスは「firefox-bin」ですです。 』と考え、この家庭が間違っているという結論を下しました。
誰かが私に正しい方向を伝えることができれば、真剣に読む準備ができています。時間が限られており、カーネル内をナビゲートできず、偶然に私の内容を発見できることを願っています。私はそれを探しています。
上記の情報を見つける方法を知っていますか?いいえエクスポートするためにFirefoxにプラグインをインストールしますか?
答え1
勉強はうまくいっていますか/home/*/.mozilla/firefox/*/sessionstore.js
?
答え2
カーネルで情報が見つからないため、Firefox プロセスに問い合わせる必要があります。 (ただ1つだけ。Firefoxは複数のスレッドを使用しますが、単一のプロセスを使用します。)タブ、URL、およびページスクロールは純粋に内部ブラウザの概念です。
Firefoxには1つあります。リモートインターフェースこれにより、シェルプロンプトでいくつかのコマンドを実行できます。
firefox -remote 'openurl(http://www.example.com/, new-tab)'
リモートインターフェイスを介して利用可能な他の文書化されていない機能があるかどうかはわかりません。まったくテストされていないアイデアは、file://
情報を収集するためにローカル()Javascriptスクリプトを開くことですが、スクリプトに必要な権限がない可能性があります。
実行中のプロセスにChromeをロードすることもできますfirefox -chrome file://…
。繰り返しますが、これがどのような機能を提供するのかわかりません。
Firefoxの外側にあることの1つは、ウィンドウとタイトルです。
wmctrl -xl |
awk '$3 == "Navigator.Firefox"
{sub(/^([^ ]+ +)([^ ]+ +)([^ ]+ +)([^ ]+ +)/,""); print}'