我想自动计算在Firefox中打开的标签数量,以便随时跟踪。
因此,我无法获得一个在状态栏或浏览器中其他位置显示当前号码的插件。
我已经查看了firefox为每个配置文件保存的.sqlite表的内容,但我无法破译是否有当前打开的选项卡表。我还查看历史表中是否有一个列,告诉该页面当前是否打开。
这些信息是否在数据库中可用?
如果是,那么存储哪些信息可用于计算当前打开的标签数?
如果没有,附加组件如何,例如Tab Counter找出这个号码?我将向开发人员提出的最后一个问题,如果它不是常见的知识,我可以在这里得到答案,而不是要求那些可能希望你使用他或她的附加组件的人。
答案 0 :(得分:9)
在正在运行的Firefox会话中,使用Mozilla Add-on API轻松提取数据。我写了一个简单的Tab Count Logger扩展来执行此操作,并将计数保存到SQLite数据库。
代码的相关部分是:
const tabs = require("sdk/tabs");
const windows = require("sdk/windows").browserWindows;
console.log("Windows: " + windows.length + "; tabs: " + tabs.length);
打开的选项卡存储在配置文件目录中的sessionstore.js
中,而不是存储在SQLite中。这个文件是JSON。计算标签的脚本:
#!/usr/bin/env python3
# Count open tabs from a firefox profile
# Working directory is the root of a Firefox profile.
import json
j = json.loads(open("sessionstore.js", 'rb').read().decode('utf-8'))
def info_for_tab(tab):
try:
return (tab['entries'][0]['url'], tab['entries'][0]['title'])
except IndexError:
return None
except KeyError:
return None
def tabs_from_windows(window):
return list(map(info_for_tab, window['tabs']))
all_tabs = list(map(tabs_from_windows, j['windows']))
print('Statistics: {wins} windows, {tabs} total tabs'.format(wins=len(all_tabs), tabs=sum(map(len, all_tabs))))
将此项保存到~/bin/firefox_count_tabs
后,您可以获取所有个人资料的信息,如下所示:
for i in ~/.mozilla/firefox/*.*; do test -d $i && (echo "== $i =="; cd $i; ~/bin/firefox_count_tabs ); done
答案 1 :(得分:8)
打开about:telemetry
链接。
在scalars
下,您会找到browser.engagement.max_concurrent_tab_count
键,其值会显示打开的标签页数。
答案 2 :(得分:2)
@Xidus:历史记录和书签存储在places.sqlite中。你无法在这里确定标签和窗口信息.tabs和windows信息存储在sessionstore.js文件中。你可以参考这个链接:
http://kb.mozillazine.org/sessionstore.js http://forums.mozillazine.org/viewtopic.php?f=38&t=622036&start=60&p=12098147#p12098147
答案 3 :(得分:0)
计数将显示在退出确认对话框中-如果您尚未禁用?️