Мне удалось обойти это в Ubuntu 12.04, передав следующие параметры qemu-kvm в командной строке (установка romfile в пустую - это трюк):
-netdev user,id=hostnet0 -device virtio-net-pci,romfile=,netdev=hostnet0
Эта информация хранится в $ HOME / .mozilla / firefox / * default / sessionstore.js, а ее формат - json.
Следующий пример был выполнен для работы с PHP. Он просматривает все окна Firefox, все вкладки и получает соответствующую информацию, которая является последней записью внутри «записей». Если бы мы могли использовать xpath для его анализа, это было бы похоже на: / windows / * / tabs / last () / url (мое знание xpath - это ржавый).
Вы можете скопировать / вставить этот код в терминал:
cat $HOME/.mozilla/firefox/*default/sessionstore.js | php -r '
$json=json_decode(fgets(STDIN), TRUE);
foreach($json["windows"] as $w)
foreach($w["tabs"] as $t)
echo end($t["entries"])["url"]."\n";'
EDIT: с perl (но сначала sudo apt-get install libjson-pp-perl):
cat $HOME/.mozilla/firefox/*default/sessionstore.js | perl -e '
use JSON qw( decode_json );
my $json = decode_json(<STDIN>);
foreach my $w ( @{$json->{"windows"}} ) {
foreach my $t ( @{$w->{"tabs"}} ) {
print $t->{"entries"}[-1]->{"url"}."\n";
}
}'
Так вы можете извлечь текущий URL-адрес вкладки front-most / active в Firefox:
cat recovery.js | php -r '$json=json_decode(fgets(STDIN), TRUE); $tindex = $json["windows"][0]["selected"]-1; $eindex = $json["windows"][0]["tabs"][$tindex]["index"]-1; echo $json["windows"][0]["tabs"][$tindex]["entries"][$eindex]["url"];'
Объяснение: Во-первых, он находит индекс активной вкладки $tindex, а затем индекс активной записи истории на этой вкладке $eindex.
Каждые 15 секунд Firefox создает резервную копию в *default/sessionstore-backups/recovery.js.
Используя bash, я нашел следующий ответ. Для этого требуется только пакет: jq. Он может быть установлен с помощью: apt-get install jq
jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js