저는 현재 사용자의 Ubuntu 시스템에서 현재 실행 중인 Firefox 세션의 상태를 아는 데 기능이 의존하는 소프트웨어를 개발 중입니다. 다음 정보를 알아야 합니다.
- 창문이 몇 개나 열려 있나요?
- 각 창에는 몇 개의 탭이 있습니까?
- 각 탭에 현재 열려 있는 URL은 무엇인가요?
- 사용자가 각 탭에서 얼마나 멀리 스크롤했습니까?
사용자로부터 명시적인 명령을 받은 후 애플리케이션은 시스템의 어느 곳에서나 이 정보를 찾습니다. 문제는 이것을 찾기 위해 애플리케이션을 어디에서 프로그래밍해야 할지 모른다는 것입니다. 내 첫 번째 추측은 커널에서 Firefox 프로세스를 확인하면 필요한 정보를 얻을 수 있다는 것이었지만 시스템 모니터를 사용하여 더 많은 창과 탭이 열릴 때 시작되는 다른 프로세스를 모니터링했지만 언급된 유일한 Firefox 프로세스는 'firefox-bin'입니다. ’라고 생각하여 이 가정이 틀렸다는 결론을 내렸습니다.
누군가 나에게 올바른 방향을 알려줄 수 있다면 진지하게 읽을 준비가 되어 있습니다. 시간이 제한되어 있고 커널 내부를 탐색할 수 없으며 우연히 내 내용을 발견할 수 있기를 바랍니다. 나는 그것을 찾고 있다.
위 정보 찾는 방법 아시는 분 계신가요?아니요내보내기 위해 Firefox에 플러그인을 설치하시겠습니까?
답변1
공부는 잘 하고 있나요 /home/*/.mozilla/firefox/*/sessionstore.js
?
답변2
커널에서 어떤 정보도 찾을 수 없으므로 Firefox 프로세스에 문의해야 합니다. (단 하나만. Firefox는 여러 스레드를 사용하지만 단일 프로세스를 사용합니다.) 탭, URL 및 페이지 스크롤은 순전히 내부 브라우저 개념입니다.
Firefox에는 하나가 있습니다.원격 인터페이스이를 통해 쉘 프롬프트에서 일부 명령을 실행할 수 있습니다.
firefox -remote 'openurl(http://www.example.com/, new-tab)'
원격 인터페이스를 통해 사용할 수 있는 문서화되지 않은 다른 기능이 있는지는 모르겠습니다. 전혀 테스트되지 않은 아이디어는 file://
정보를 수집하기 위해 로컬( ) Javascript 스크립트를 여는 것이지만 스크립트에 필요한 권한이 없을 수도 있습니다.
실행 중인 프로세스에 크롬을 로드할 수도 있습니다 firefox -chrome file://…
. 다시 말하지만, 이것이 어떤 기능을 제공하는지 전혀 모릅니다.
Firefox 외부에서 알 수 있는 한 가지는 창과 제목입니다.
wmctrl -xl |
awk '$3 == "Navigator.Firefox"
{sub(/^([^ ]+ +)([^ ]+ +)([^ ]+ +)([^ ]+ +)/,""); print}'