我目前正在开发一款软件,其功能取决于了解用户 Ubuntu 计算机上当前运行的 Firefox 会话的状态。它需要了解以下信息:
- 打开了多少个窗口?
- 每个窗口中有多少个选项卡?
- 每个选项卡中当前打开的 URL 是什么?
- 用户在每个选项卡上滚动了多远?
在收到用户的明确命令后,应用程序将从系统上的任何位置查找该信息。问题是我不知道应该在哪里编程应用程序来寻找这个。我的第一个猜测是,检查内核中的 Firefox 进程会产生所需的信息,但我使用系统监视器来监视打开更多窗口和选项卡时启动的其他进程,但它提到的唯一 Firefox 进程是'firefox-bin',让我得出结论,这个假设是不正确的。
如果有人能给我指出正确的方向,我准备做一些重要的阅读,只是我的时间有限,我不能开始在内核内部摸索,希望我能偶然发现我的东西。我在寻找。
有谁知道如何找到以上信息没有求助于在 Firefox 上安装一个插件来导出它?
答案1
你读书怎么样/home/*/.mozilla/firefox/*/sessionstore.js
?
答案2
你不会在内核中找到任何信息,你必须询问 firefox 进程。 (只有一个。Firefox 使用多个线程但单个进程。)选项卡、URL 和页面上的滚动是纯粹浏览器内部的概念。
火狐有一个远程接口它允许您从 shell 提示符运行一些命令。
firefox -remote 'openurl(http://www.example.com/, new-tab)'
我不知道是否还有其他未记录的功能可以通过远程接口使用。一个完全未经测试的想法是打开本地 ( file://
) Javascript 脚本来收集信息,但该脚本可能没有必要的权限。
您还可以将 chrome 加载到正在运行的进程中:firefox -chrome file://…
。再说一次,我不知道这提供了什么功能。
您可以从 Firefox 外部了解的一件事是窗口及其标题:
wmctrl -xl |
awk '$3 == "Navigator.Firefox"
{sub(/^([^ ]+ +)([^ ]+ +)([^ ]+ +)([^ ]+ +)/,""); print}'